#include <LiquidCrystal.h>
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6 , d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#define sw0 digitalRead (8)
#define sw1 digitalRead (9)
#define sw2 digitalRead (10)
#define sw3 digitalRead (11)
#define led1 12
#define led2 13
int16_t menu;
bool latchSW0, latchSW1, latchSW2, latchSW3, latchALL;
void setup() {
lcd.begin(16, 2);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
if (menu == 0){
lcd.setCursor (2,0);
lcd.print("TEKAN TOMBOL");
if (latchALL == 0 && (sw1 == 0 || sw2 == 0)){
latchALL=1;
}
if (latchALL == 1 && (sw1 == 1 && sw2 == 1)){
lcd.clear();
menu=1;
latchALL=0;
}
}
if (menu == 1){
lcd.setCursor (0,0);
lcd.print(">LED | LED ALL");
lcd.setCursor (0,1);
lcd.print(" ADC | ADC MAP");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=11;
latchSW0=0;
}
if (latchSW1 == 0 && sw1 == 0){
latchSW1 = 1;
}
if (latchSW1 == 1 && sw1 == 1){
lcd.clear ();
menu=2;
latchSW1 = 0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=0;
latchSW3=0;
}
}
if (menu == 11){
lcd.setCursor (0,0);
lcd.print(">LED 1");
lcd.setCursor (0,1);
lcd.print(" LED 2");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=111;
latchSW0=0;
}
if (latchSW1 == 0 && sw1 == 0){
latchSW1 = 1;
}
if (latchSW1 == 1 && sw1 == 1){
lcd.clear ();
menu=12;
latchSW1 = 0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=1;
latchSW3=0;
}
}
if (menu == 12){
lcd.setCursor (0,0);
lcd.print(" LED 1");
lcd.setCursor (0,1);
lcd.print(">LED 2");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=121;
latchSW0=0;
}
if (latchSW2 == 0 && sw2 == 0){
latchSW2 = 1;
}
if (latchSW2 == 1 && sw2 == 1){
lcd.clear ();
menu=11;
latchSW2 = 0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=1;
latchSW3=0;
}
}
if (menu == 111){
lcd.setCursor (2,0);
lcd.print("KONDISI LED 1");
lcd.setCursor (5,1);
lcd.print("<OFF>");
digitalWrite(led1, LOW);
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=112;
latchSW0=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=11;
latchSW3=0;
}
}
if (menu == 112){
lcd.setCursor (2,0);
lcd.print("KONDISI LED 1");
lcd.setCursor (5,1);
lcd.print("< ON>");
digitalWrite(led1, HIGH);
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=111;
latchSW0=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=11;
latchSW3=0;
}
}
if (menu == 121){
lcd.setCursor (2,0);
lcd.print("KONDISI LED 2");
lcd.setCursor (5,1);
lcd.print("<OFF>");
digitalWrite(led2, LOW);
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=122;
latchSW0=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=12;
latchSW3=0;
}
}
if (menu == 122){
lcd.setCursor (2,0);
lcd.print("KONDISI LED 2");
lcd.setCursor (5,1);
lcd.print("< ON>");
digitalWrite(led2, HIGH);
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=121;
latchSW0=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=12;
latchSW3=0;
}
}
if (menu == 2){
lcd.setCursor (0,0);
lcd.print(" LED |>LED ALL");
lcd.setCursor (0,1);
lcd.print(" ADC | ADC MAP");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=21;
latchSW0=0;
}
if (latchSW1 == 0 && sw1 == 0){
latchSW1 = 1;
}
if (latchSW1 == 1 && sw1 == 1){
lcd.clear();
menu=3;
latchSW1=0;
}
if (latchSW2 == 0 && sw2 == 0){
latchSW2 = 1;
}
if (latchSW2 == 1 && sw2 == 1){
lcd.clear ();
menu = 1;
latchSW2=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=0;
latchSW3=0;
}
}
if (menu == 21){
lcd.setCursor (1,0);
lcd.print("KONDISI ALL LED");
lcd.setCursor (5,1);
lcd.print("<OFF>");
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=211;
latchSW0=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=2;
latchSW3=0;
}
}
if (menu == 211){
lcd.setCursor (1,0);
lcd.print("KONDISI ALL LED");
lcd.setCursor (5,1);
lcd.print("< ON>");
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=21;
latchSW0=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=2;
latchSW3=0;
}
}
if (menu == 3){
lcd.setCursor (0,0);
lcd.print(" LED | LED ALL");
lcd.setCursor (0,1);
lcd.print(">ADC | ADC MAP");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear();
menu=31;
latchSW0=0;
}
if (latchSW1 == 0 && sw1 == 0){
latchSW1 = 1;
}
if (latchSW1 == 1 && sw1 == 1){
lcd.clear();
menu=4;
latchSW1=0;
}
if (latchSW2 == 0 && sw2 == 0){
latchSW2 = 1;
}
if (latchSW2 == 1 && sw2 == 1){
lcd.clear ();
menu = 2;
latchSW2=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=0;
latchSW3=0;
}
}
if (menu == 31){
lcd.setCursor (0,0);
lcd.print(">ADC A0");
lcd.setCursor (0,1);
lcd.print(" ADC A1");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=311;
latchSW0=0;
}
if (latchSW1 == 0 && sw1 == 0){
latchSW1 = 1;
}
if (latchSW1 == 1 && sw1 == 1){
lcd.clear();
menu=32;
latchSW1=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=3;
latchSW3=0;
}
}
if (menu == 32){
lcd.setCursor (0,0);
lcd.print(" ADC A0");
lcd.setCursor (0,1);
lcd.print(">ADC A1");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=321;
latchSW0=0;
}
if (latchSW2 == 0 && sw2 == 0){
latchSW2 = 1;
}
if (latchSW2 == 1 && sw2 == 1){
lcd.clear();
menu=31;
latchSW2=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=3;
latchSW3=0;
}
}
if (menu == 311){
lcd.setCursor (0,0);
lcd.print("NILAI ADC A0");
lcd.setCursor (0,1);
lcd.print(analogRead(A0));
lcd.print(" ");
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=31;
latchSW3=0;
}
}
if (menu == 321){
lcd.setCursor (0,0);
lcd.print("NILAI ADC A1");
lcd.setCursor (0,1);
lcd.print(analogRead(A1));
lcd.print(" ");
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=32;
latchSW3=0;
}
}
if (menu == 4){
lcd.setCursor (0,0);
lcd.print(" LED | LED ALL");
lcd.setCursor (0,1);
lcd.print(" ADC |>ADC MAP");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu = 41;
latchSW0=0;
}
if (latchSW2 == 0 && sw2 == 0){
latchSW2 = 1;
}
if (latchSW2 == 1 && sw2 == 1){
lcd.clear ();
menu = 3;
latchSW2=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=0;
latchSW3=0;
}
}
if (menu == 41){
lcd.setCursor (0,0);
lcd.print(">MAP ADC A0");
lcd.setCursor (0,1);
lcd.print(" MAP ADC A1");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=411;
latchSW0=0;
}
if (latchSW1 == 0 && sw1 == 0){
latchSW1 = 1;
}
if (latchSW1 == 1 && sw1 == 1){
lcd.clear();
menu=42;
latchSW1=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=4;
latchSW3=0;
}
}
if (menu == 42){
lcd.setCursor (0,0);
lcd.print(" MAP ADC A0");
lcd.setCursor (0,1);
lcd.print(">MAP ADC A1");
if (latchSW0 == 0 && sw0 == 0){
latchSW0 = 1;
}
if (latchSW0 == 1 && sw0 == 1){
lcd.clear ();
menu=421;
latchSW0=0;
}
if (latchSW2 == 0 && sw2 == 0){
latchSW2 = 1;
}
if (latchSW2 == 1 && sw2 == 1){
lcd.clear();
menu=41;
latchSW2=0;
}
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=4;
latchSW3=0;
}
}
if (menu == 411){
lcd.setCursor (0,0);
lcd.print("MAP ADC A0");
lcd.setCursor (0,1);
lcd.print(map (analogRead(A0), 0, 1023, 0, 10));
lcd.print(" ");
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=41;
latchSW3=0;
}
}
if (menu == 421){
lcd.setCursor (0,0);
lcd.print("MAP ADC A1");
lcd.setCursor (0,1);
lcd.print(map (analogRead(A1), 0, 1023, 0, 100));
lcd.print(" ");
if (latchSW3 == 0 && sw3 == 0){
latchSW3 = 1;
}
if (latchSW3 == 1 && sw3 == 1){
lcd.clear();
menu=42;
latchSW3=0;
}
}
}