#define ENCODER_CLK 2
#define ENCODER_DT 3
int menu= 1;
int MenuUp=0;
int MenuDown=0;
void setup() {
lcd.int();
lcd.backlight();
Serial.begin(9600);
pinMode(ENCODER_CLK, INPUT);
pinMode(ENCODER_DT, INPUT);
attachInterrupt(digitalPinToInterrupt(ENCODER_CLK), readEncoder, FALLING);
}
void readEncoder() {
int dtValue = digitalRead(ENCODER_DT);
if (dtValue == HIGH) {
Serial.println("Rotated clockwise");
MenuUp=1;
}
if (dtValue == LOW) {
Serial.println("Rotated counterclockwise");
MenuDown=1;
}
}
void loop() {
if (MenuDown==1){
MenuDown=0;
menu++;
updateMenu();
delay(100);
}
if (MenuUp==1){
MenuUp=0;
menu--;
updateMenu();
delay(100);
}
void updateMenu() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
lcd.clear();
lcd.print(">COUNT DOWN");
lcd.setCursor(0, 1);
lcd.print(" LED2");
break;
case 2:
lcd.clear();
lcd.print(" COUNT DOWN");
lcd.setCursor(0, 1);
lcd.print(">LED2");
break;
case 3:
lcd.clear();
lcd.print(">LED3");
lcd.setCursor(0, 1);
lcd.print(" LED4");
break;
case 4:
lcd.clear();
lcd.print(" LED3");
lcd.setCursor(0, 1);
lcd.print(">LED4");
break;
case 5:
menu = 4;
break;
}
}