#include <U8g2lib.h>
#include <Wire.h>
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
int selectedOption = 0; // Opção selecionada do menu
int pisca = 0;
// Array com os itens do menu
const char* menuItems[] = {
"JuliaLabs",
"laryfofix",
"foxyb",
"manyeb",
"pitanguinha_j",
"mais"
};
void setup(void)
{
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
u8g2.begin();
u8g2.setFont(u8g2_font_ncenB08_tr); // Define a fonte
drawMenu();
}
void drawMenu() {
u8g2.clearBuffer();
for (int i = 0; i < sizeof(menuItems) / sizeof(menuItems[0]); i++) {
int piscou;
if (i == selectedOption) {
if(pisca == 0){
pisca = 1;
}else{
u8g2.drawStr(0, (i + 1) * 10, ">>"); // Indica a seleção atual
pisca = 0;
}
}
}
u8g2.drawStr(14, (0 + 1) * 10, menuItems[0]);
u8g2.drawStr(14, (1 + 1) * 10, menuItems[1]);
u8g2.drawStr(14, (2 + 1) * 10, menuItems[2]);
u8g2.drawStr(14, (3 + 1) * 10, menuItems[3]);
u8g2.drawStr(14, (4 + 1) * 10, menuItems[4]);
u8g2.drawStr(14, (5 + 1) * 10, menuItems[5]);
u8g2.sendBuffer();
}
void updateSelectedOption(int newOption) {
selectedOption = newOption;
drawMenu();
}
void loop() {
drawMenu();
// Verifica se o botão para baixo foi pressionado
if (digitalRead(2) == LOW) {
selectedOption = (selectedOption + 1) % (sizeof(menuItems) / sizeof(menuItems[0]));
drawMenu();
delay(200); // Pequeno delay para evitar múltiplas detecções
}
// Verifica se o botão para cima foi pressionado
if (digitalRead(3) == LOW) {
selectedOption = (selectedOption - 1 + sizeof(menuItems) / sizeof(menuItems[0])) % (sizeof(menuItems) / sizeof(menuItems[0]));
drawMenu();
delay(200); // Pequeno delay para evitar múltiplas detecções
}
// Outro código do loop, se necessário
}