// Mohon maaf saya belum maksimal dengan 4 button
// Menggunakan 2 button sebagai button 1 up/down dan button 2 Oke dan back ke menu
#include <LiquidCrystal_I2C.h>
#define btMenu 2
#define btOke 3
#define btback 4
// Variabel
int menu = 0;
int Oke = 0;
int back = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
pinMode(btMenu, INPUT);
pinMode(btOke, INPUT);
pinMode(btback, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Pilihan Menu:");
}
void loop() {
// Baca
int getMenu = digitalRead(btMenu);
int getOke = digitalRead(btOke);
int getBack = digitalRead(btback);
//Logika
if (getMenu==1 and Oke==0){
delay(200);
menu++;
updateMenu();
if(menu==5){
menu=1;
updateMenu();
}
}
if (getOke==1){
delay(200);
Oke++;
if (Oke==2){
delay(200);
updateMenu();
Oke=0;
}
}
if (menu==1 and Oke==1){
menuAyambakar();
} else if (menu==2 and Oke==1){
menuSosisbakar();
} else if (menu==3 and Oke==1){
menuTempegoreng();
} else if (menu==4 and Oke==1){
menuSayur();
}
delay(100);
}
void updateMenu() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pilih Menu:");
if (menu == 1) {
lcd.setCursor(0,1);lcd.print("1.Ayam Bakar");
} else if (menu == 2) {
lcd.setCursor(0,1);lcd.print("2.Sosis Bakar");
} else if (menu == 3) {
lcd.setCursor(0,1);lcd.print("3.Tempe Goreng");
} else if (menu == 4) {
lcd.setCursor(0,1);lcd.print("4.Sayur");
}
}
void menuAyambakar(){
Serial.println("Menu Satu ");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tersedia");
}
void menuSosisbakar(){
Serial.println("Menu Dua ");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tersedia");
}
void menuTempegoreng(){
Serial.println("Menu Tiga ");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tersedia");
}
void menuSayur(){
Serial.println("Menu Empat ");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tersedia");
}