#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Address 0x27, 16 chars, 2 lines
void setup() {
Wire.begin();
lcd.begin(16, 2);
lcd.backlight();
if (!rtc.begin()) {
lcd.print("Couldn't find RTC");
while (1);
}
if (!rtc.isrunning()) {
lcd.clear();
lcd.print("RTC is NOT running");
// Uncomment to set time to compile time
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
lcd.clear();
lcd.print("Digital Clock");
delay(2000);
lcd.clear();
}
void loop() {
DateTime now = rtc.now();
char timeBuffer[9]; // HH:MM:SS
sprintf(timeBuffer, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
lcd.setCursor(0, 0);
lcd.print("Time:");
lcd.setCursor(6, 0);
lcd.print(timeBuffer);
char dateBuffer[11]; // DD/MM/YYYY
sprintf(dateBuffer, "%02d/%02d/%04d", now.day(), now.month(), now.year());
lcd.setCursor(0, 1);
lcd.print("Date:");
lcd.setCursor(6, 1);
lcd.print(dateBuffer);
delay(1000);
}