#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2);
#define SW0 2
#define SW1 3
#define SW2 4
#define SW3 5
#define led1 7
#define led2 6
#define ADC1 A0
#define ADC1 A1
int menu;
bool PSW0, PSW1, PSW2, PSW3;
void setup() {
lcd.begin();
lcd.backlight();
pinMode(SW0, INPUT_PULLUP);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
pinMode(SW3, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
if (menu==0){
lcd.setCursor(0, 0);
lcd.print(" Tekan Tombol ");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=1;
PSW0=1;
}
if(digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
if (menu==1){
lcd.setCursor(0, 0);
lcd.print(">LED | LED ALL");
lcd.setCursor(0, 1);
lcd.print(" ADC | ADC MAP");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=10;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW1)==0 && PSW1==0){
lcd.clear();
menu=2;
PSW1=1;
}
if (digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
Back();
}
if (menu==10){
lcd.setCursor(0, 0);
lcd.print(">LED 1");
lcd.setCursor(0, 1);
lcd.print(" LED 2");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=100;
PSW0=1;
}
if(digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW1)==0 && PSW1==0){
lcd.clear();
menu=11;
PSW1=1;
}
if(digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=1;
PSW3=1;
}
if(digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==100){
lcd.setCursor(2, 0);
lcd.print("KONDISI LED1");
lcd.setCursor(5, 1);
lcd.print("<OFF>");
digitalWrite(led1, LOW);
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=101;
PSW0=1;
}
if(digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=10;
PSW3=1;
}
if(digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==101){
lcd.setCursor(2, 0);
lcd.print("KONDISI LED1");
lcd.setCursor(6, 1);
lcd.print("<ON>");
digitalWrite(led1, HIGH);
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=10;
PSW3=1;
}
if(digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=100;
PSW0=1;
}
if(digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
if (menu==11){
lcd.setCursor(0, 0);
lcd.print(" LED 1");
lcd.setCursor(0, 1);
lcd.print(">LED 2");
if (digitalRead(SW2)==0 && PSW2==0){
lcd.clear();
menu=10;
PSW2=1;
}
if(digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=1;
PSW3=1;
}
if(digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=110;
PSW0=1;
}
if(digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
if (menu==110){
lcd.setCursor(2, 0);
lcd.print("KONDISI LED2");
lcd.setCursor(5, 1);
lcd.print("<OFF>");
digitalWrite(led2, LOW);
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=10;
PSW3=1;
}
if(digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=111;
PSW0=1;
}
if(digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
if (menu==111){
lcd.setCursor(2, 0);
lcd.print("KONDISI LED2");
lcd.setCursor(6, 1);
lcd.print("<ON>");
digitalWrite(led2, HIGH);
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=11;
PSW3=1;
}
if(digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=110;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
if (menu==2){
lcd.setCursor(0, 0);
lcd.print("LED | >LED ALL");
lcd.setCursor(0, 1);
lcd.print("ADC | ADC MAP");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=20;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW1)==0 && PSW1==0){
lcd.clear();
menu=3;
PSW1=1;
}
if (digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
if (digitalRead(SW2)==0 && PSW2==0){
lcd.clear();
menu=1;
PSW2=1;
}
if(digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
Back();
}
if (menu==20){
lcd.setCursor(0, 0);
lcd.print("KONDISI ALL LED");
lcd.setCursor(5, 1);
lcd.print("<OFF>");
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=2;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=21;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
if (menu==21){
lcd.setCursor(0, 0);
lcd.print("KONDISI ALL LED");
lcd.setCursor(6, 1);
lcd.print("<ON>");
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=20;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=2;
PSW3=1;
}
if(digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==3){
lcd.setCursor(0, 0);
lcd.print(" LED | LED ALL");
lcd.setCursor(0, 1);
lcd.print(">ADC | ADC MAP");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=30;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW1)==0 && PSW1==0){
lcd.clear();
menu=4;
PSW1=1;
}
if (digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
if (digitalRead(SW2)==0 && PSW2==0){
lcd.clear();
menu=2;
PSW2=1;
}
if (digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
Back();
}
if (menu==30){
lcd.setCursor(0, 0);
lcd.print(">ADC A0");
lcd.setCursor(0, 1);
lcd.print(" ADC A1");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=300;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW1)==0 && PSW1==0){
lcd.clear();
menu=31;
PSW1=1;
}
if (digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=3;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==300){
lcd.setCursor(0, 0);
lcd.print("Nilai ADC A0");
lcd.setCursor(0, 1);
lcd.print(analogRead(A0));
lcd.print(" ");
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=30;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==31){
lcd.setCursor(0,0);
lcd.print(" ADC A0");
lcd.setCursor(0,1);
lcd.print(">ADC A1");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=310;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW2)==0 && PSW2==0){
lcd.clear();
menu=30;
PSW2=1;
}
if (digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=3;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==310){
lcd.setCursor(0, 0);
lcd.print("Nilai ADC A1");
lcd.setCursor(0, 1);
lcd.print(analogRead(A1));
lcd.print(" ");
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=31;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==4){
lcd.setCursor(0, 0);
lcd.print("LED | LED ALL");
lcd.setCursor(0, 1);
lcd.print("ADC | >ADC MAP");
if (digitalRead(SW2)==0 && PSW2==0){
lcd.clear();
menu=3;
PSW2=1;
}
if (digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=40;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
Back();
}
if (menu==40){
lcd.setCursor(0, 0);
lcd.print(">MAP ADC A0");
lcd.setCursor(0, 1);
lcd.print(" MAP ADC A1");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=400;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW1)==0 && PSW1==0){
lcd.clear();
menu=41;
PSW1=1;
}
if (digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=4;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==400){
lcd.setCursor(0, 0);
lcd.print("MAP ADC A0");
lcd.setCursor(0, 1);
lcd.print(analogRead(A0));
lcd.print(" = ");
lcd.print(map(analogRead(A0), 0, 1023, 0, 10));
lcd.print(" ");
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=40;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==41){
lcd.setCursor(0, 0);
lcd.print(" MAP ADC A0");
lcd.setCursor(0, 1);
lcd.print(">MAP ADC A1");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=410;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
if (digitalRead(SW2)==0 && PSW2==0){
lcd.clear();
menu=40;
PSW2=1;
}
if (digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=4;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
if (menu==410){
lcd.setCursor(0, 0);
lcd.print("MAP ADC A1");
lcd.setCursor(0, 1);
lcd.print(analogRead(A1));
lcd.print(" = ");
lcd.print(map(analogRead(A1), 0, 1023, 0, 10));
lcd.print(" ");
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=41;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}
}
void Back(){
if (digitalRead(SW3)==0 && PSW3==0){
lcd.clear();
menu=0;
PSW3=1;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW3=0;
}
}