#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
#include <RTClib.h>
#include <Wire.h>
RTC_DS3231 rtc;
DateTime now;
char t[32];
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (rs, e, d4, d5, d6, d7) Normal lcd
LiquidCrystal_I2C lcd1(0x27, 16, 2); // I2C lcd
void setup()
{
lcd.begin(16,2);
lcd1.init(); // initialize the I2C lcd
lcd1.backlight(); // I2C backlight
Serial.begin(9600);
Wire.begin();
if (! rtc.begin())
{
Serial.println(" RTC Module not Present");
while (1);
}
if (rtc.lostPower())
{
Serial.println("RTC power failure, reset the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
// rtc.begin();
// rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
//rtc.adjust(DateTime(2023, 3, 29, 14, 27, 0));
}
void loop()
{
now = rtc.now();
displayDate();
displayTime();
int a=10;
EEPROM.write(255, a);
int b=EEPROM.read(255);
//DateTime now = rtc.now();
sprintf(t, "%02d:%02d:%02d %02d/%02d/%02d", now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year());
Serial.print(F("Date/Time: "));
Serial.println(t);
delay(1000);
}
void displayDate()
{
lcd.setCursor(0,0);
lcd.print("Date:");
lcd.print(now.day());
lcd.print('/');
lcd.print(now.month());
lcd.print('/');
lcd.print(now.year());
lcd1.setCursor(0, 0);
lcd1.print("Date:");
lcd1.print(now.day());
lcd1.print('/');
lcd1.print(now.month());
lcd1.print('/');
lcd1.print(now.year());
}
void displayTime()
{
lcd.setCursor(0,1);
lcd.print("Time:");
lcd.print(now.hour());
lcd.print(':');
lcd.print(now.minute());
lcd.print(':');
lcd.print(now.second());
lcd.print(" ");
lcd1.setCursor(0,1);
lcd1.print("Time:");
lcd1.print(now.hour());
lcd1.print(':');
lcd1.print(now.minute());
lcd1.print(':');
lcd1.print(now.second());
lcd1.print(" ");
}