#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
int upButton = 10;
int downButton = 11;
int selectButton = 12;
int menu = 1;
SSD1306AsciiWire oled;
void setup() {
oled.setFont(System5x7);
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(selectButton, INPUT_PULLUP);
Wire.begin();
Wire.setClock(400000L);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
}
void loop()
{
if (!digitalRead(downButton)){
menu++;
updateMenu();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
updateMenu();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
executeAction();
updateMenu();
delay(100);
while (!digitalRead(selectButton));
}
}
void updateMenu() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
oled.clear();
oled.println(">Menu 1");
oled.println(" Menu 2");
oled.println(" Menu 3");
oled.println(" Menu 4");
break;
case 2:
oled.clear();
oled.println(" Menu 1");
oled.println(">Menu 2");
oled.println(" Menu 3");
oled.println(" Menu 4");
break;
case 3:
oled.clear();
oled.println(" Menu 1");
oled.println(" Menu 2");
oled.println(">Menu 3");
oled.println(" Menu 4");
break;
case 4:
oled.clear();
oled.println(" Menu 1");
oled.println(" Menu 2");
oled.println(" Menu 3");
oled.println(">Menu 4");
break;
case 5:
oled.clear();
oled.println(">Menu 1");
oled.println(" Menu 2");
oled.println(" Menu 3");
oled.println(" Menu 4");
break;
case 6:
oled.clear();
oled.println(" Menu 5");
oled.println(">Menu 6");
oled.println(" Menu 7");
oled.println(" Menu 8");
break;
case 7:
oled.clear();
oled.println(" Menu 5");
oled.println(" Menu 6");
oled.println(">Menu 7");
oled.println(" Menu 8");
break;
case 8:
oled.clear();
oled.println(" Menu 5");
oled.println(" Menu 6");
oled.println(" Menu 7");
oled.println(">Menu 8");
break;
case 9:
menu = 8;
break;
}
}
void executeAction() {
switch (menu) {
case 1:
action1();
break;
case 2:
action2();
break;
case 3:
action3();
break;
case 4:
action4();
break;
case 5:
action5();
break;
case 6:
action6();
break;
case 7:
action7();
break;
case 8:
action8();
break;
}
}
void action1() {
oled.clear();
oled.println("du stinkst 1");
delay(1500);
}
void action2() {
oled.clear();
oled.println("du stinkst 2");
delay(1500);
}
void action3() {
oled.clear();
oled.println("du stinkst 3");
delay(1500);
}
void action4() {
oled.clear();
oled.println("du stinkst 4");
delay(1500);
}
void action5() {
oled.clear();
oled.println("du stinkst 5");
delay(1500);
}
void action6() {
oled.clear();
oled.println("du stinkst 6");
delay(1500);
}
void action7() {
oled.clear();
oled.println("du stinkst 7");
delay(1500);
}
void action8() {
oled.clear();
oled.println("du stinkst 8");
delay(1500);
}