#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Wire.h"
#include "SPI.h"
#include "RTClib.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS3231 RTC;
void setup () {
lcd.begin();
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
if (! RTC.isrunning()) {
lcd.print("RTC is NOT running!");
RTC.adjust(DateTime(__DATE__, __TIME__));
}
DateTime now = RTC.now();
}
void loop ()
{
DateTime now = RTC.now();
lcd.setCursor(0, 0);
lcd.print("Time : ");
lcd.setCursor(8, 0);
lcd.print(now.hour(), DEC);
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.print(":");
lcd.print(now.second(), DEC);
lcd.setCursor(0, 1);
lcd.print(RTC.getTemperature());
lcd.print("c");
lcd.setCursor(7, 1);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
delay(1000);
}
โคดตัวอย่างในบทความ จะเป็นการตั้งค่าให้กับ RTC ถ้าเซคค่าแล้วให้เอา RTC.adjust(DateTime(__DATE__, __TIME__)); ออก เพราะตัวนี้จะตั้งค่าเวลาใหม่ทุกครั้งที่รันโปรแกรมครับ
Serial.begin(9600);
Wire.begin();
RTC.begin();
//RTC.adjust(DateTime(__DATE__, __TIME__));