#include <LiquidCrystal_I2C.h>
int state1 = 0; // จากการทำงานหลัก
int state2 = 0; // จากการทำงานรอง
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// void setup() {
// pinMode(2,INPUT);
// pinMode(3,INPUT);
// pinMode(4,INPUT);
// Serial.begin(9600);
// Serial.println("program start <<");
// lcd.init();
// lcd.backlight();
// lcd.setCursor(4,0);
// lcd.print("-stanby-");
// lcd.setCursor(1,1);
// lcd.print("Time : xx:xx");
// }
// void loop() {
// if(digitalRead(2)==LOW){
// Serial.println("button press << ");
// state1++;
// if(state1==3)state1=0;
// lcd.setCursor(0,0);
// lcd.print(" ");
// delay(200);
// }
// if(digitalRead(3)==LOW){
// Serial.println("button 2 press << ");
// state2++;
// if(state2>=2)state2=0;
// lcd.setCursor(0,0);
// lcd.print(" ");
// delay(200);
// }
// if(digitalRead(4)==LOW){
// Serial.println("button 3 press << ");
// delay(200);
// }
// // function readtime อ่านค่าจาก time แล้วแสดงผลที่จอ
// switch(state1){
// case 0 :lcd.setCursor(4,0);
// lcd.print("-stanby-");
// break;
// case 1 :if(state2==1){
// lcd.setCursor(1,0);
// lcd.print("water value");
// }
// else{
// lcd.setCursor(1,0);
// lcd.print("water setting");
// }
// break;
// case 2 :lcd.setCursor(1,0);
// lcd.print("water check");
// break;
// default:Serial.println("missing switch case");
// }
// }
const int btnUp = 2;
const int btnDown = 3;
const int btnSelect = 4;
int currentMenu = 0;
const int totalMenus = 3;
const char* menuItems[] = {
"Option 1",
"Option 2",
"Option 3"
};
void setup() {
pinMode(btnUp, INPUT_PULLUP);
pinMode(btnDown, INPUT_PULLUP);
pinMode(btnSelect, INPUT_PULLUP);
lcd.init();
lcd.backlight();
// แสดงเมนูเริ่มต้น
showMenu();
}
void loop() {
if (digitalRead(btnUp) == LOW) {
currentMenu = (currentMenu - 1 + totalMenus) % totalMenus;
showMenu();
delay(200); // หน่วงเวลาเพื่อกันการกดซ้ำ
}
if (digitalRead(btnDown) == LOW) {
currentMenu = (currentMenu + 1) % totalMenus;
showMenu();
delay(200); // หน่วงเวลาเพื่อกันการกดซ้ำ
}
if (digitalRead(btnSelect) == LOW) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Selected:");
lcd.setCursor(0, 1);
lcd.print(menuItems[currentMenu]);
delay(1000); // แสดงผล 1 วินาที
showMenu();
}
}
void showMenu() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Menu:");
lcd.setCursor(0, 1);
lcd.print(menuItems[currentMenu]);
}