#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2);
#define SW0 5
#define SW1 4
#define SW2 6
#define SW3 7
#define LED0 2
#define LED1 3
#define ADC0 A0
#define ADC1 A1
int menu;
int time1 = 300;
void setup() {
// put your setup code here, to run once:
pinMode(SW0, INPUT_PULLUP);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
pinMode(SW3, INPUT_PULLUP);
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
lcd.begin();
lcd.backlight();
}
void loop() {
// put your main code here, to run repeatedly:
menuSetting();
}
void menuSetting() {
setMenu0:
if (digitalRead(SW1) == 0 || digitalRead(SW2) == 0) {
delay(time1);
while (digitalRead(SW1) == 0 || digitalRead(SW2) == 0) {}
lcd.clear();
goto setMenu1;
}
lcd.setCursor(0, 0);
lcd.print(" tekan tombol ");
goto setMenu0;
//----------------------------MAIN MENU------------------------------//
setMenu1:
if (digitalRead(SW1) == 0) {
delay(time1);
while (digitalRead(SW1) == 0) {}
goto setMenu2;
}
else if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu1;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
lcd.clear();
goto setMenu0;
}
lcd.setCursor(0, 0); lcd.print(">LED | LED ALL");
lcd.setCursor(0, 1); lcd.print(" ADC | ADC MAP");
goto setMenu1;
//-------------------------------------------------------------------//
setMenu2:
if (digitalRead(SW1) == 0) {
delay(time1);
while (digitalRead(SW1) == 0) {}
goto setMenu3;
}
else if (digitalRead(SW2) == 0) {
delay(time1);
while (digitalRead(SW2) == 0) {}
goto setMenu1;
}
else if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu3;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
lcd.clear();
goto setMenu0;
}
lcd.setCursor(0, 0); lcd.print(" LED |>LED ALL");
lcd.setCursor(0, 1); lcd.print(" ADC | ADC MAP");
goto setMenu2;
//-------------------------------------------------------------------//
setMenu3:
if (digitalRead(SW1) == 0) {
delay(time1);
while (digitalRead(SW1) == 0) {}
goto setMenu4;
}
else if (digitalRead(SW2) == 0) {
delay(time1);
while (digitalRead(SW2) == 0) {}
goto setMenu2;
}
else if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu4;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
lcd.clear();
goto setMenu0;
}
lcd.setCursor(0, 0); lcd.print(" LED | LED ALL");
lcd.setCursor(0, 1); lcd.print(">ADC | ADC MAP");
goto setMenu3;
//-------------------------------------------------------------------//
setMenu4:
if (digitalRead(SW2) == 0) {
delay(time1);
while (digitalRead(SW2) == 0) {}
goto setMenu3;
}
else if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu6;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
lcd.clear();
goto setMenu0;
}
lcd.setCursor(0, 0); lcd.print(" LED | LED ALL");
lcd.setCursor(0, 1); lcd.print(" ADC |>ADC MAP");
goto setMenu4;
//----------------------------SUB MENU------------------------------//
setSubMenu1:
if (digitalRead(SW1) == 0) {
delay(time1);
while (digitalRead(SW1) == 0) {}
goto setSubMenu2;
}
else if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu1;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setMenu1;
}
lcd.setCursor(0, 0); lcd.print(">LED 1 ");
lcd.setCursor(0, 1); lcd.print(" LED 2 ");
goto setSubMenu1;
//-------------------------------------------------------------------//
setSubMenu2:
if (digitalRead(SW2) == 0) {
delay(time1);
while (digitalRead(SW2) == 0) {}
goto setSubMenu1;
}
else if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu3;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setMenu1;
}
lcd.setCursor(0, 0); lcd.print(" LED 1 ");
lcd.setCursor(0, 1); lcd.print(">LED 2 ");
goto setSubMenu2;
//-------------------------------------------------------------------//
setSubMenu3:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu5;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setMenu2;
}
digitalWrite(LED0, LOW);
digitalWrite(LED1, LOW);
lcd.setCursor(0, 0); lcd.print(" KONDISI ALL LED");
lcd.setCursor(0, 1); lcd.print(" <OFF> ");
goto setSubMenu3;
//-------------------------------------------------------------------//
setSubMenu4:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
lcd.clear();
goto setSubSubmenu6;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
goto setMenu3;
}
else if (digitalRead(SW1) == 0) {
delay(time1);
while (digitalRead(SW1) == 0) {}
goto setSubMenu5;
}
lcd.setCursor(0, 0); lcd.print(">ADC A0 ");
lcd.setCursor(0, 1); lcd.print(" ADC A1 ");
goto setSubMenu4;
//-------------------------------------------------------------------//
setSubMenu5:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}\
lcd.clear();
goto setSubSubmenu7;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
goto setMenu3;
}
else if (digitalRead(SW2) == 0) {
delay(time1);
while (digitalRead(SW2) == 0) {}
goto setSubMenu4;
}
lcd.setCursor(0, 0); lcd.print(" ADC A0 ");
lcd.setCursor(0, 1); lcd.print(">ADC A1 ");
goto setSubMenu5;
//-------------------------------------------------------------------//
setSubMenu6:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
lcd.clear();
goto setSubSubmenu8;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
goto setMenu4;
}
else if (digitalRead(SW1) == 0) {
delay(time1);
while (digitalRead(SW1) == 0) {}
goto setSubMenu7;
}
lcd.setCursor(0, 0); lcd.print(">MAP ADC A0 ");
lcd.setCursor(0, 1); lcd.print(" MAP ADC A1 ");
goto setSubMenu6;
//-------------------------------------------------------------------//
setSubMenu7:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
lcd.clear();
goto setSubSubmenu9;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW3) == 0) {}
goto setMenu4;
}
else if (digitalRead(SW2) == 0) {
delay(time1);
while (digitalRead(SW2) == 0) {}
goto setSubMenu6;
}
lcd.setCursor(0, 0); lcd.print(" MAP ADC A0 ");
lcd.setCursor(0, 1); lcd.print(">MAP ADC A1 ");
goto setSubMenu7;
//----------------------------SUB SUBMENU----------------------------//
//--------------------------------LED--------------------------------//
setSubSubmenu1:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu2;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu1;
}
digitalWrite(LED0, LOW);
lcd.setCursor(0, 0); lcd.print(" KONDISI LED 1 ");
lcd.setCursor(0, 1); lcd.print(" <OFF> ");
goto setSubSubmenu1;
//-------------------------------------------------------------------//
setSubSubmenu2:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu1;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu1;
}
digitalWrite(LED0, HIGH);
lcd.setCursor(0, 0); lcd.print(" KONDISI LED 1 ");
lcd.setCursor(0, 1); lcd.print(" <ON > ");
goto setSubSubmenu2;
//-------------------------------------------------------------------//
setSubSubmenu3:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu4;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu2;
}
digitalWrite(LED1, LOW);
lcd.setCursor(0, 0); lcd.print(" KONDISI LED 2 ");
lcd.setCursor(0, 1); lcd.print(" <OFF> ");
goto setSubSubmenu3;
//-------------------------------------------------------------------//
setSubSubmenu4:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu3;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubSubmenu3;
}
digitalWrite(LED1, HIGH);
lcd.setCursor(0, 0); lcd.print(" KONDISI LED 2 ");
lcd.setCursor(0, 1); lcd.print(" <ON > ");
goto setSubSubmenu4;
//-------------------------------------------------------------------//
setSubSubmenu5:
if (digitalRead(SW0) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu3;
}
else if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu3;
}
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
lcd.setCursor(0, 0); lcd.print(" KONDISI ALL LED");
lcd.setCursor(0, 1); lcd.print(" <ON > ");
goto setSubSubmenu5;
//-------------------------------------------------------------------//
//--------------------------------ADC--------------------------------//
setSubSubmenu6:
if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu4;
}
lcd.setCursor(0, 0); lcd.print("Nilai ADC A0 ");
lcd.setCursor(0, 1); lcd.print(String(analogRead(A0)) + " ");
goto setSubSubmenu6;
//-------------------------------------------------------------------//
setSubSubmenu7:
if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu5;
}
lcd.setCursor(0, 0); lcd.print("Nilai ADC A1 ");
lcd.setCursor(0, 1); lcd.print(String(analogRead(A1)) + " ");
goto setSubSubmenu7;
//-------------------------------------------------------------------//
setSubSubmenu8:
if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu6;
}
lcd.setCursor(0, 0); lcd.print("MAP ADC A0 ");
lcd.setCursor(0, 1); lcd.print(String(analogRead(A0)) + " = " + String(map(analogRead(A0), 0, 1023, 0, 10)) + " ");
goto setSubSubmenu8;
//-------------------------------------------------------------------//
setSubSubmenu9:
if (digitalRead(SW3) == 0) {
delay(time1);
while (digitalRead(SW0) == 0) {}
goto setSubMenu7;
}
lcd.setCursor(0, 0); lcd.print("MAP ADC A1 ");
lcd.setCursor(0, 1); lcd.print(String(analogRead(A1)) + " = " + String(map(analogRead(A1), 0, 1023, 0, 100)) + " ");
goto setSubSubmenu9;
//-------------------------------------------------------------------//
}