#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int menuMerker = 0;
bool buttonGedrueckt = false;
bool lcdAktualisiert = false;
void checkButton(int bhoch, int brunter, int benter, String zeile_1, String zeile_2)
{
if (buttonGedrueckt == false){
if(digitalRead(2)==false){
menuMerker = bhoch;
buttonGedrueckt = true;
}
else if (digitalRead(3)==false){
menuMerker = brunter;
buttonGedrueckt = true;
}
else if(digitalRead(4)==false){
menuMerker = benter;
buttonGedrueckt = true;
}
}
else{
if (buttonGedrueckt && (!lcdAktualisiert)){
lcd.clear();
lcd.print(zeile_1);
lcd.setCursor(0,1);
lcd.print(zeile_2);
lcdAktualisiert = true;
delay(150);
}
if(digitalRead(2) && digitalRead(3) && digitalRead(4))
{
buttonGedrueckt = false;
lcdAktualisiert = false;
}
}
}
void Menu_0()
{
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
lcd.begin(16,2);
buttonGedrueckt = true;
checkButton(0,0,0,"Noels","Supermaschine");
delay(1000);
const int hoch = 2;
const int runter = 3;
const int enter = 4;
pinMode(hoch, INPUT_PULLUP);
pinMode(runter, INPUT_PULLUP);
pinMode(enter, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
switch(menuMerker)
{
case 0:
checkButton(3,1,10,"Start Menu","Bertiebsart");
break;
case 1:
checkButton(0,2,20,"Start Menu","Einstellungen");
break;
case 2:
checkButton(1,3,30,"Start Menu","Irgendwas 1");
break;
case 3:
checkButton(1,0,40,"Start Menu","Irgenwas 2");
break;
// Betriebsart
case 10:
checkButton(13,11,10,"Bertiebsart","LED");
break;
case 11:
checkButton(10,12,11,"Bertiebsart","Ausschalten");
if(!digitalRead(4)){
digitalWrite(13, LOW);
}
break;
case 12:
checkButton(11,13,12,"Bertiebsart","Einschalten");
if(!digitalRead(4)){
digitalWrite(13, HIGH);
}
break;
case 13:
checkButton(12,10,0,"Bertiebsart","zurueck");
break;
case 20:
checkButton(20,20,1,"Einstellungen","zurueck");
break;
case 30:
checkButton(30,30,1,"Irgendwas 1","zurueck");
break;
case 40:
checkButton(40,40,1,"Irgendwas 1","zurueck");
break;
}
}