#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
pinMode(8, INPUT_PULLUP); // Input Pullup ไม่ต้องต่อ R (Resistor)
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
lcd.init();
lcd.backlight();
} //// end void setup
int h = 0;
int m = 0;
int s = 0;
int st = 0;
void loop() {
int sw1 = digitalRead(8); ////////// SET
delay(100);
if (sw1 == 0) {
st++;
if (st >= 4) { ////////// SET กดเกิน 3 ครั้ง ให้วนกลับเป็น 0
st = 0;
}
}
////////////////////////////////////////
if (st == 1) { ////////// ตั้ง ชั่วโมง (SET กดครั้งที่ 1)
int sw2 = digitalRead(9); ////////// UP
delay(100);
if (sw2 == 0) {
h++;
if (h >= 24) {
h = 0;
}
}
}
////////////////////////////////////////
if (st == 2) { ////////// ตั้ง นาที (SET กดครั้งที่ 2)
int sw2 = digitalRead(9); ////////// UP
delay(100);
if (sw2 == 0) {
m++;
if (m >= 60) {
m = 0;
}
}
}
////////////////////////////////////////
if (st == 3) { ////////// ตั้ง วินาที (SET กดครั้งที่ 3)
int sw2 = digitalRead(9); ////////// UP
delay(100);
if (sw2 == 0) {
s++;
if (s >= 60) {
s = 0;
}
}
}
// SET=st / Hour=h / Minute=m / Second=s
Serial.print("st=");
Serial.print(st);
Serial.print(" / h=");
Serial.print(h);
Serial.print(" / m=");
Serial.print(m);
Serial.print(" / s=");
Serial.print(s);
Serial.println("");
lcd.setCursor(0, 0);
lcd.print("Set Time");
////////// ////////// Hour
lcd.setCursor(0, 1);
lcd.print(h);
lcd.setCursor(2, 1);
lcd.print(":");
////////// ////////// Minute
lcd.setCursor(3, 1);
lcd.print(m);
lcd.setCursor(5, 1);
lcd.print(":");
////////// ////////// Second
lcd.setCursor(6, 1);
lcd.print(s);
} //// end void loop