#include <LiquidCrystal_I2C.h>
#define CLK_pin 6
#define DT_pin 7
#define SW_pin 8
int selectedItem = 0,sw_count=1;
int topMenuItem = 0;
String menu1[10]={"ABC","BCD","ABCCBS","FBCD","AEBC","BGCD","WABC","HBCD","AJBC","BCBD"};
LiquidCrystal_I2C lcd(0x27, 16, 2);
int lastclk=1;
void setup() {
// put your setup code here, to run once:
pinMode(CLK_pin, INPUT_PULLUP);
pinMode(DT_pin, INPUT_PULLUP);
pinMode(SW_pin, INPUT_PULLUP);
lcd.init();
lcd.backlight();
}
void main_screen() {
lcd.setCursor(0,1);
lcd.print(selectedItem);
}
void hienthimenu() {
//lcd.clear();
for (int i = 0; i < 2 && (topMenuItem + i) < 10; i++) { // Hiển thị 2 mục
if (topMenuItem + i == selectedItem) {
lcd.setCursor(0, i);
lcd.print(">");
} else {
lcd.setCursor(0, i);
lcd.print(" ");
}
lcd.setCursor(1, i);
lcd.print(menu1[topMenuItem + i]);
}
}
void loop() {
if(!digitalRead(SW_pin)) {
sw_count++;
while(!digitalRead(SW_pin));
if (sw_count>1) sw_count=0;
}
if (sw_count==1) hienthimenu();
else main_screen();
int newclk = digitalRead(CLK_pin);
if(newclk!=lastclk) {
lastclk=newclk;
int dt=digitalRead(DT_pin);
if(newclk==0 && dt==1){
//lcd.setCursor(0,0);
//lcd.print("Thuan");
selectedItem++;
}
else if(newclk==0 && dt==0){
//lcd.setCursor(0,0);
//lcd.print("Nghich");
selectedItem--;
}
if(selectedItem>=10 ) selectedItem=10;
else if(selectedItem<0 ) selectedItem=0;
}
// put your main code here, to run repeatedly:
}