#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
#define OnboardLED 13
LiquidCrystal_I2C lcd(0x27,20,4);
RTC_DS1307 myRTC;
unsigned char Cx=0;
unsigned long PrevTime,NowTime; //ประกาศตัวแปรเพื่อเก็บค่าไว้ไม่ให้ reset จากการวนloop
byte myChar = '0';
float Num1 = 0.5673899999;
DateTime RTC_Now;
void setup() {
pinMode(OnboardLED, OUTPUT);
Serial.begin(9600);
Serial.print("Hello EN of RMUIT khonkkaen");
lcd.init();
lcd.backlight();
lcd.setCursor(5,0);lcd.print("--cvithaya--");
lcd.setCursor(3,3);lcd.print("We're ENT RMUTI");
myRTC.begin();
}
void loop()
{
NowTime = millis(); // เซฟเวลาปัจจุบันไว้เพื่อรอจนกว่า millis จะมากกว่าตัวมันเท่า period(ระยะเวลา)
if(NowTime >= (PrevTime + 100)) //ถ้า เซฟเวลาปัจจุบันไว้เพื่อรอจนกว่า millis จะมากกว่าหรือเท่ากับ PrevTime + 100
{
if(Cx==0)digitalWrite(OnboardLED, HIGH); //1ถ้า Cxเท่ากับ0 กำหนดให้ OnboardLED เป้นลอจิก1
else if(Cx==3) digitalWrite(OnboardLED, LOW); // ถ้า Cx เท่ากับ3 กำหนดให้ OnboardLED เป้นลอจิก0
if(Cx == 9) {
Cx = 0; // กำหนดให้เป็น 0
if(Cx == 9) // ถ้าเท่ากับ9
{
}
Cx = 0; //กำหนดให้เป็น 0
RTC_Now = myRTC.now(); // กำหนดRTC เป็น myRTC.now
lcd.setCursor(0,1); //กำหนดให้ออกจอLCD ตำแหน่งของ Cursor ตำแหน่งที่0 บรรทัดที่1
lcd.print(RTC_Now.hour()); //ใช้แสดงข้อความออกมาทางหน้าจอ เป็น ชม.
lcd.print(":");lcd.print(RTC_Now.minute()); //ใช้แสดงข้อความออกมาทางหน้าจอ เป็น นาที
lcd.print(":");lcd.print(RTC_Now.second());////ใช้แสดงข้อความออกมาทางหน้าจอ เป็น วินาที
//
lcd.setCursor(10,1); lcd.print(RTC_Now.day()); //ใช้แสดงข้อความออกมาทางหน้าจอ เป็น วัน
lcd.print(":");lcd.print(RTC_Now.month()); //ใช้แสดงข้อความออกมาทางหน้าจอ เป็น เดือน
lcd.print(":");lcd.print(RTC_Now.year()); //ใช้แสดงข้อความออกมาทางหน้าจอ เป็น ปี
}else Cx++; //
PrevTime =NowTime; //
}
}