#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64 // Alterado para 64 para a biblioteca Adafruit
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Definições dos pinos
#define UP_BUTTON 17
#define DOWN_BUTTON 19
#define PUSH_BUTTON 16
uint8_t escolha = 1;
void setup() {
Serial.begin(9600);
pinMode(UP_BUTTON, INPUT_PULLUP);
pinMode(DOWN_BUTTON, INPUT_PULLUP);
pinMode(PUSH_BUTTON, INPUT_PULLUP);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
display.display();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
MENU();
}
void loop() {
if (escolha == 1) {
GRAVITY();
}
if (escolha == 2) {
GRAVITY();
}
if (escolha == 3) {
GRAVITY();
}
if (escolha == 4) {
GRAVITY();
}
}
void MENU() {
while (digitalRead(PUSH_BUTTON) == HIGH) {
if (digitalRead(UP_BUTTON) == LOW) {
escolha--;
if (escolha < 1) escolha = 4;
delay(200); // debounce
display.display();
}
if (digitalRead(DOWN_BUTTON) == LOW) {
escolha++;
if (escolha > 4) escolha = 1;
delay(200); // debounce
display.display();
}
display.clearDisplay();
display.setCursor(0, 0);
display.print("SELECIONE UM JOGO:");
display.setCursor(0, 10);
display.print("1. PING PONG");
display.setCursor(0, 20);
display.print("2. STAR WARS");
display.setCursor(0, 30);
display.print("3. GRAVITY");
display.setCursor(0, 40);
display.print("4. FLAPPY BIRD");
display.setCursor(0, 50);
display.print("Escolha: ");
display.print(escolha);
display.display();
}
SETUP_GRAVITY();
}
// Função placeholder para configurar o jogo GRAVITY
void SETUP_GRAVITY() {
// Configurações específicas do jogo GRAVITY podem ser colocadas aqui
Serial.println("Configurando GRAVITY");
delay(1000);
}
void GRAVITY() {
// Código específico do jogo GRAVITY pode ser colocado aqui
Serial.println("Rodando GRAVITY");
delay(1000);
}