#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc;
void setup() {
pinMode(13, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
Serial.begin(115200);
rtc.begin();
lcd.init();
lcd.backlight();
}
int h,m,s,h2,m2,h3,m3;
int st =0;
void loop() {
DateTime now = rtc.now();
h = now.hour(); //ดึงเวลา ชั่วโมง
m = now.minute(); //ดึงค่าเวลานาที
s = now.second(); //ดึงค่าเวลาวินาที
lcd.setCursor(0,0);
lcd.print(String(h)+":"+String(m)+":"+String(s)+" ");
if(h==20){
if(m==38){
Serial.println("ON");
}
}
if( digitalRead(13) == LOW ){ //หากกดปุ่มตั้งค่า
st++; //เพิ่มค่าตัวแปร ST
if(st==5){ //หากค่าตัวแปร ST = 5
lcd.clear(); //เคลียร์หน้าจอ
st=0; //ให้ค่าตัวแปรเป็น 0
}
while(digitalRead(13) == LOW){} //รอจนกว่าจะปล่อยปุ่มตั้งค่า
}else if(digitalRead(12) == LOW ){ //หากกดปุ่มเพิ่ม
if(st==1){ //หากตัวแปร ST = 1
h2++; //เพิ่มค่าตัวแปร
}else if(st==2){ //หากตัวแปร ST = 2
m2++; //เพิ่มค่าตัวแปร
}else if(st==3){ //หากตัวแปร ST = 3
h3++; //เพิ่มค่าตัวแปร
}else if(st==4){ //เพิ่มค่าตัวแปร
m3++; //เพิ่มค่าตัวแปร
}
}else if(digitalRead(11) == LOW ){ //หากกดปุ่มลด
if(st==1){ //หากตัวแปร ST = 1
h2--; //ลดค่าตัวแปร
}else if(st==2){ //หากตัวแปร ST = 2
m2--; //ลดค่าตัวแปร
}else if(st==3){ //หากตัวแปร ST = 3
h3--; //ลดค่าตัวแปร
}else if(st==4){ //หากตัวแปร ST = 4
m3--; //ลดค่าตัวแปร
}
}
} /// end loop