#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
RTC_DS1307 rtc;
LiquidCrystal_I2C mylcd(0x27,16,2);
char daysOfTheWeek[7][12] =
{
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
void setup ()
{
Serial.begin(9600);
mylcd.init();
mylcd.backlight();
// SETUP RTC MODULE
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
mylcd.setCursor(0,0);
mylcd.print("Couldn't find RTC");
Serial.flush();
while (1);
}
// automatically sets the RTC to the date & time on PC this sketch was compiled
rtc.adjust(DateTime(2025, 5, 16, 10, 30, 0));
}
void loop () {
DateTime now = rtc.now();
mylcd.setCursor(0,0);
mylcd.print("Date & Time:");
mylcd.setCursor(12,0);
mylcd.print(now.year(), DEC);
mylcd.print('/');
mylcd.setCursor(0,1);
mylcd.print(now.month(), DEC);
mylcd.print('/');
mylcd.print(now.day(), DEC);
mylcd.print(" (");
mylcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
mylcd.print(") ");
mylcd.print(now.hour(), DEC);
mylcd.print(':');
mylcd.print(now.minute(), DEC);
mylcd.print(':');
mylcd.println(now.second(), DEC);
Serial.print("Date & Time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.println(now.second(), DEC);
delay(1000); // delay 1 seconds
}