#include <LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define I2C_ADDR 0x27 // address
#define LCD_COLUMNS 20 // ตำแหน่ง ตาม row
#define LCD_LINES 4 // row 0,1,2,3 บรรทัด
int st, setTime, setUp, setDw = 0;
int hr, mi, se = 0;
bool setHour, swHr, swMi, swSe;
String txHr, txMi, txSe;
//String Str5[8];
//Str5[8];
void setup() {
lcd.init(); // initial device
lcd.backlight();
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
// set 1= set Hour,2 = set = Munite , 3 = Second
lcd.setCursor(0, 0);
lcd.print("Set Time" );
lcd.setCursor(1, 1);
lcd.print(hr);
lcd.setCursor(3, 1); lcd.print(":");
lcd.setCursor(4, 1);lcd.print(mi);
lcd.setCursor(6, 1); lcd.print(":");
lcd.setCursor(7, 1); lcd.print(se);
setTime = digitalRead(8); delay(100);
// count 1 to 3 time.
Serial.print(" Set Time :"); Serial.print(st);
if (setTime == 0) {
st++;
if (st >= 5 ) {
st = 0;
}
}
//st = 1 for set hour
setHH();
//st = 2 for set minute
setMM();
//st = 3 for set second
setSS();
}
void setHH() {
if (st == 1) {
txHr = st;
Serial.print(" Hour :"); Serial.print(st);
delay(400);
setUp = digitalRead(9); delay(100);
if (setUp == 0) {
hr++;
if (hr >= 24) {
hr = 0;
}
}
setDw = digitalRead(10); delay(100);
if (setDw == 0) {
hr--;
if (hr <= 0) {
hr = 0;
}
}
lcd.clear();
delay(100);
}
}
void setMM() {
if (st == 2) {
Serial.print(" Minute :"); Serial.print(st);
setUp = digitalRead(9); delay(100);
if (setUp == 0) {
mi++;
if (mi >= 60) {
mi = 0;
}
}
setDw = digitalRead(10); delay(100);
if (setDw == 0) {
mi--;
if (mi <= 0) {
mi = 0;
}
}
lcd.clear();
delay(100);
}
}
void setSS() {
if (st == 3) {
Serial.print(" Second :"); Serial.print(st);
setUp = digitalRead(9); delay(100);
if (setUp == 0) {
se++;
if (se >= 60) {
se = 0;
}
}
setDw = digitalRead(10); delay(100);
if (setDw == 0) {
se--;
if (se <= 0) {
se = 0;
}
}
lcd.clear();
delay(100);
}
}