#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
int Menu,Up,Down,Ok;
int lockMenu=0,lockUp=0,lockDown=0,lockOk=0;
int dis,sub=0,mode=0;
void setup()
{
pinMode(A0, INPUT_PULLUP);// mengaktifkan resistor internal
pinMode(A1, INPUT_PULLUP);
pinMode(A2, INPUT_PULLUP);
pinMode(A3, INPUT_PULLUP);
lcd.init ();
lcd.setCursor(0,0); lcd.print(" Tutorial Menu ");
lcd.setCursor(0,1); lcd.print(" & ");
lcd.setCursor(0,2); lcd.print(" Sub Menu ");
lcd.setCursor(0,3); lcd.print(" andalanelektro.id ");
}
void loop()
{
Menu= digitalRead(A0);
Up= digitalRead(A1);
Down= digitalRead(A2);
Ok= digitalRead(A3);
tampil();
}
void tampil()
{
if (Menu==0 && lockMenu==0){lockMenu=1;} if (Menu!=0 && lockMenu==1){lockMenu=0; dis=1;}
if (Menu==0 && lockMenu==0){lockMenu=1;} if (Menu!=0 && lockMenu==1 && dis>1){lcd.clear(); lockMenu=0; dis=1;}
if (dis==1)
{
// tampilan awal//
lcd.setCursor(1,0); lcd.print("Menu 1 ");
lcd.setCursor(1,1); lcd.print("Menu 2 ");
lcd.setCursor(1,2); lcd.print("Menu 3 ");
lcd.setCursor(1,3); lcd.print("Menu 4 ");
if (Down==0 && lockDown==0){lockDown=1;} //turunkan Cursor ">"
if (Down!=0 && lockDown==1){lcd.clear(); lockDown=0; mode++;}
if (Up==0 && lockUp==0){lockUp=1;} //naikkan Cursor ">"
if (Up!=0 && lockUp==1){lcd.clear(); lockUp=0; mode--;}
switch (mode)
{
case 0 : lcd.setCursor(0,0); lcd.print(">"); break;
case 1 : lcd.setCursor(0,1); lcd.print(">"); break;
case 2 : lcd.setCursor(0,2); lcd.print(">"); break;
case 3 : lcd.setCursor(0,3); lcd.print(">"); break;
}
if (Ok==0 && lockOk==0){lockOk=1; mode=0;}
if (Ok!=0 && lockOk==1 && mode==0){lockOk=0; dis=2; lcd.clear(); } // pilih menu 1
if (Ok!=0 && lockOk==1 && mode==1){lockOk=0; dis=3; lcd.clear(); } // pilih menu 2
if (Ok!=0 && lockOk==1 && mode==2){lockOk=0; dis=4; lcd.clear(); } // pilih menu 3
if (Ok!=0 && lockOk==1 && mode==3){lockOk=0; dis=5; lcd.clear(); } // pilih menu 4
if (mode>3 || mode<0) mode=0;
}
if (dis==2)
{
if (sub==0)
{
lcd.setCursor(0,0); lcd.print("Status Value ");
lcd.setCursor(1,1); lcd.print("Sub Menu 1 ");
lcd.setCursor(1,2); lcd.print("Sub Menu 2 ");
lcd.setCursor(1,3); lcd.print("Sub Menu 3 ");
if (Down==0 && lockDown==0){lockDown=1;} //turunkan Cursor ">"
if (Down!=0 && lockDown==1){lcd.clear(); lockDown=0; mode++;}
if (Up==0 && lockUp==0){lockUp=1;} //naikkan Cursor ">"
if (Up!=0 && lockUp==1){lcd.clear(); lockUp=0; mode--;}
if (Ok==0 && lockOk==0){lockOk=1; mode=0;}
if (Ok!=0 && lockOk==1 && mode==0){lockOk=0; lcd.clear(); sub=1; } // Isi submenu 1
if (Ok!=0 && lockOk==1 && mode==1){lockOk=0; lcd.clear(); sub=2; } // Isi submenu 2
if (Ok!=0 && lockOk==1 && mode==2){lockOk=0; lcd.clear(); sub=3; } // Isi submenu 3
if (mode>2 || mode<0) mode=0;
}
if (dis==3)
{
lcd.setCursor(0,0); lcd.print("Setting Value ");
lcd.setCursor(1,1); lcd.print("Sub Menu 1 ");
lcd.setCursor(1,2); lcd.print("Sub Menu 2 ");
lcd.setCursor(1,3); lcd.print("Sub Menu 3 ");
}
if (dis==4)
{
lcd.setCursor(0,0); lcd.print("Setting Timer Value ");
lcd.setCursor(1,1); lcd.print("Sub Menu 1 ");
lcd.setCursor(1,2); lcd.print("Sub Menu 2 ");
lcd.setCursor(1,3); lcd.print("Sub Menu 3 ");
}
if (dis==5)
{
lcd.setCursor(0,0); lcd.print("Parameter ");
lcd.setCursor(1,1); lcd.print("Sub Menu 1 ");
lcd.setCursor(1,2); lcd.print("Sub Menu 2 ");
lcd.setCursor(1,3); lcd.print("Sub Menu 3 ");
}
//isi menu1////
if (dis==2 && sub==1){lcd.setCursor(0,1); lcd.print(" Isi Sub Menu 1:::");}
if (dis==2 && sub==2){lcd.setCursor(0,1); lcd.print(" Isi Sub Menu 2::");}
if (dis==2 && sub==3){lcd.setCursor(0,1); lcd.print(" Isi Sub Menu 3:");}
}
}
////////////////////////andalanelektro.id////////////////////////////////////////