Hallo,
ich habe ein Menü mit 10 Menüpunkte, bis "Menu 6" wird angezeigt.
Die anderen passen nicht auf das 128X64 Display aber ich bekomme das mit dem scrollen nicht hin.
Könnt ihr mir bitte weiter helfen?
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
#define OLED_SDA 21
#define OLED_SCL 22
Adafruit_SH1106 display(21, 22);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
int selected = 0;
int entered = -1;
void displaymenu(void) {
int down = digitalRead(25);
int up = digitalRead(26);
int enter = digitalRead(27);
int back = digitalRead(14);
if (up == LOW && down == LOW) {
};
if (up == LOW) {
selected = selected + 1;
delay(200);
};
if (down == LOW) {
selected = selected - 1;
delay(200);
};
if (enter == LOW) {
entered = selected;
};
if (back == LOW) {
entered = -1;
};
const char *options[10] = {
" Menu 1",
" Menu 2",
" Menu 3",
" Menu 4 ",
" Menu 5 ",
" Menu 6 ",
" Menu 7 ",
" Menu 8 ",
" Menu 9",
" Menu 10"
};
if (entered == -1) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("menu test"));
display.println("");
for (int i = 0; i < 10; i++) {
if (i == selected) {
display.setTextColor(BLACK, WHITE);
display.println(options[i]);
} else if (i != selected) {
display.setTextColor(WHITE);
display.println(options[i]);
//Serial.println(selected);
}
}
} else if (entered == 0) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 1");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system");
} else if (entered == 1) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 2");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system :)");
}
else if (entered == 2) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 3");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
} else if (entered == 3) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 4");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
} else if (entered == 4) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 5");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
} else if (entered == 5) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 6");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
} else if (entered == 6) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 7");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
} else if (entered == 7) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 8");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
} else if (entered == 8) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 9");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
} else if (entered == 9) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(F("Dsn menu test"));
display.println("Menu option 10");
display.setTextColor(WHITE);
display.setTextSize(2);
display.println("Dsn Menu system:)");
}
display.display();
}
void setup() {
pinMode(25, INPUT_PULLUP);
pinMode(27, INPUT_PULLUP);
pinMode(26, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
Serial.begin(9600);
display.begin(SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
// Draw a single pixel in white
display.drawPixel(10, 10, WHITE);
display.display();
delay(2000); // Pause for 2 seconds
}
void loop() {
// put your main code here, to run repeatedly:
displaymenu();
}