#include <Wire.h>//thuvien i2c
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>// Thư viện để làm việc với mô-đun RTC DS3231.
RTC_DS3231 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Địa chỉ I2C của màn hình LCD và kích thước (16x2)
void setup() {
lcd.init(); // Khởi tạo màn hình LCD
lcd.backlight(); // Bật đèn nền
if (!rtc.begin()) {//Bắt đầu kết nối với mô-đun RTC DS3231. Nếu không thành công,
// hiển thị thông báo trên màn hình LCD và dừng chương trình
lcd.print("Khong tim thay RTC");
while (1);
}
DateTime now = rtc.now();
if (now.year() < 2000) {// Nếu thời gian của RTC là dưới năm 2000,
//điều chỉnh thời gian bằng thời gian biên dịch của chương trình.
lcd.print("RTC dang chay ...");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();//Lấy thời gian hiện tại từ mô-đun RTC.
lcd.setCursor(0, 0);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
lcd.setCursor(0, 1);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
delay(1000);
}