#include <LCD_I2C.h>
#define LED1 2
#define LED2 3
#define SW0 4
#define SW1 5
#define SW2 6
#define SW3 7
int menu;
int PSW0, PSW1, PSW2, PSW3;
int setP1;
int setP2;
bool pilihanP;
LCD_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(SW0, INPUT_PULLUP);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
pinMode(SW3, INPUT_PULLUP);
}
void loop() {
if (analogRead(A0)>setP1){
digitalWrite(LED1,1);
} else {
digitalWrite(LED1,0);
}
if (analogRead(A1)>setP2){
digitalWrite(LED2,1);
} else {
digitalWrite(LED2,0);
}
/////MENU0/////
if (menu==0) {
lcd.setCursor(0, 0);
lcd.print("ADC 0: ");
lcd.print(analogRead(A0));
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("ADC 1: ");
lcd.print(analogRead(A1));
lcd.print(" ");
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=1;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
/////MENU1 P0/////
if (menu==1){
lcd.setCursor(3, 0);
lcd.print("SET POINT");
lcd.setCursor(0, 1);
lcd.print("P0: " + String(setP1)+" ");
lcd.setCursor(7, 1);
lcd.print("| P1: " + String(setP2)+" ");
if (digitalRead(SW3)==0 && PSW3==0){
pilihanP=!pilihanP;
}
if (digitalRead(SW3)==1 && PSW3==1){
PSW1=0;
}
if (digitalRead(SW0)==0 && PSW0==0){
lcd.clear();
menu=0;
PSW0=1;
}
if (digitalRead(SW0)==1 && PSW0==1){
PSW0=0;
}
}
/////SETPOINT 0///////
if (pilihanP==0){
if (digitalRead(SW1)==0 && PSW1==0){
setP1++;
PSW1=1;
}
if (digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
if (digitalRead(SW2)==0 && PSW2==0){
setP1--;
PSW2=1;
}
if (digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
}
///////SETPOINT 1/////////
if (pilihanP==1){
if (digitalRead(SW1)==0 && PSW1==0){
setP2++;
PSW1=1;
}
if (digitalRead(SW1)==1 && PSW1==1){
PSW1=0;
}
if (digitalRead(SW2)==0 && PSW2==0){
setP2--;
PSW2=1;
}
if (digitalRead(SW2)==1 && PSW2==1){
PSW2=0;
}
}
}