#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "MenuLib.h"
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
const char* menuItems[] = {
"Start",
"Settings",
"Info",
"Shutdown",
"Extra 1",
"Extra 2",
"Extra 3",
"Extra 4",
"Extra 5"
};
const char* menu2Items[] = {
"1",
"2"
};
void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
SimpleMenu::begin(4, 5, 3, 6); // Up, Down, Back, Select
SimpleMenu::setDisplay(display);
SimpleMenu::setTextSize(1); // 8px text height
SimpleMenu::setDebounce(300); // Optional debounce override
}
void loop() {
int result = SIMPLE_MENU_SHOW("Main Menu", menuItems, 2); // Start at "Info"
if (result == -1) {
Serial.println("Back selected");
delay(500);
return;
}
Serial.print("You selected: ");
Serial.println(menuItems[result]);
if (result == 2){
Serial.println(menu2Items[SIMPLE_MENU_SHOW("sub Menu", menu2Items, 0)]);
}
delay(1000);
}