#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int btn_hore = 5;
int btn_dole = 4;
int btn_enter = 3;
int menu_counter = 0;
int sub_menu_counter = 1;
bool in_menu = false;
void setup() {
lcd.init();
lcd.backlight();
pinMode(btn_hore, INPUT_PULLUP);
pinMode(btn_dole, INPUT_PULLUP);
pinMode(btn_enter, INPUT_PULLUP);
update_menu();
}
void loop() {
if(sub_menu_counter == 0) {
sub_menu_counter = 1;
lcd.clear();
update_menu();
return;
} else {
// tlačítko dolu
if(!digitalRead(btn_dole)) {
menu_counter++;
update_menu();
delay(100);
while(!digitalRead(btn_dole));
}
if(!digitalRead(btn_dole) & in_menu == true & sub_menu_counter > 0) {
sub_menu_counter++;
sub_menu();
delay(100);
while(!digitalRead(btn_dole));
}
// tlačítko hore
if(!digitalRead(btn_hore)) {
menu_counter--;
update_menu();
delay(100);
while(!digitalRead(btn_hore));
}
if(!digitalRead(btn_hore) & in_menu == true & sub_menu_counter > 0) {
sub_menu_counter--;
sub_menu();
delay(100);
while(!digitalRead(btn_hore));
}
// tlačítko enter
if(!digitalRead(btn_enter)) {
sub_menu_counter = 1;
sub_menu();
delay(100);
while(!digitalRead(btn_enter));
}
}
}
// menu
void update_menu() {
switch(menu_counter) {
case(0):
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Vitajte v menu");
lcd.setCursor(0,1);
lcd.print("Moznost 1");
lcd.setCursor(0,2);
lcd.print("Moznost 2");
lcd.setCursor(0,3);
lcd.print("Moznost 3");
break;
case(1):
lcd.clear();
lcd.setCursor(0,0);
lcd.print("> Moznost 1");
lcd.setCursor(0,1);
lcd.print("Moznost 2");
lcd.setCursor(0,2);
lcd.print("Moznost 3");
lcd.setCursor(0,3);
lcd.print("Moznost 4");
break;
case(2):
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Moznost 1");
lcd.setCursor(0,1);
lcd.print("> Moznost 2");
lcd.setCursor(0,2);
lcd.print("Moznost 3");
lcd.setCursor(0,3);
lcd.print("Moznost 4");
break;
case(3):
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Moznost 1");
lcd.setCursor(0,1);
lcd.print("Moznost 2");
lcd.setCursor(0,2);
lcd.print("> Moznost 3");
lcd.setCursor(0,3);
lcd.print("Moznost 4");
break;
case(4):
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Moznost 1");
lcd.setCursor(0,1);
lcd.print("Moznost 2");
lcd.setCursor(0,2);
lcd.print("Moznost 3");
lcd.setCursor(0,3);
lcd.print("> Moznost 4");
break;
}
}
// sub_menu
void sub_menu() {
in_menu = false;
switch(sub_menu_counter) {
case(0):
in_menu = true;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("> Spat do menu");
lcd.setCursor(0,1);
lcd.print("Moznost 1");
lcd.setCursor(0,2);
lcd.print("Moznost 2");
break;
case(1):
in_menu = true;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Spat do menu");
lcd.setCursor(0,1);
lcd.print("> Moznost 1");
lcd.setCursor(0,2);
lcd.print("Moznost 2");
break;
case(2):
in_menu = true;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Spat do menu");
lcd.setCursor(0,1);
lcd.print("Moznost 1");
lcd.setCursor(0,2);
lcd.print("> Moznost 2");
break;
}
}