#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
//#define OLED_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define BUTTON_UP_PIN 2
#define BUTTON_DOWN_PIN 3
#define YELLOW 0xFFE0 // Benutzerdefinierte Farbe für Gelb
String menuItems[] = {"pH Wert", "Chlor", "Kalibrieren"};
int selectedItem = 0;
void setup() {
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
pinMode(BUTTON_UP_PIN, INPUT_PULLUP);
pinMode(BUTTON_DOWN_PIN, INPUT_PULLUP);
}
void displayMenu() {
display.clearDisplay();
display.setTextSize(1);
for(int i=0; i<3; i++) {
if (i == selectedItem) {
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 8 + i*8);
display.print(">");
} else {
display.setTextColor(SSD1306_WHITE);
display.setCursor(8, 8 + i*8); // Offset für das '>'
display.print(" ");
}
display.print(menuItems[i]);
}
display.display();
}
void loop() {
displayMenu();
if (digitalRead(BUTTON_UP_PIN) == LOW) {
selectedItem = (selectedItem - 1 + 3) % 3; // Umschalten nach oben
delay(300); // Entprellung
}
if (digitalRead(BUTTON_DOWN_PIN) == LOW) {
selectedItem = (selectedItem + 1) % 3; // Umschalten nach unten
delay(300); // Entprellung
}
// Hier kannst du die Logik für jedes Menüelement einfügen
// Je nach Auswahl wird entsprechender Code ausgeführt
// Beispiel: if (selectedItem == 0) { // pH Wert... }
}