#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DS3231_ADDRESS 0x68
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
Wire.begin();
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
Wire.beginTransmission(DS3231_ADDRESS);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(DS3231_ADDRESS, 7);
if (Wire.available()) {
int second = bcdToDec(Wire.read());
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read() & 0b111111);
int day = bcdToDec(Wire.read());
int date = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());
Serial.print("Time: ");
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.println(second);
Serial.print("Date: ");
Serial.print(date);
Serial.print("/");
Serial.print(month);
Serial.print("/");
Serial.println(year);
lcd.setCursor(0, 0);
lcd.print("Time: ");
lcd.print(hour);
lcd.print(":");
lcd.print(minute);
lcd.print(":");
lcd.print(second);
lcd.setCursor(0, 1);
lcd.print("Date: ");
lcd.print(date);
lcd.print("/");
lcd.print(month);
lcd.print("/");
lcd.print(year);
lcd.setCursor(0, 2);
lcd.print("BY ARVIND ,INDIA: ");
lcd.setCursor(3, 3);
lcd.print("917020336035 ");
}
delay(1000);
}
int bcdToDec(byte val) {
return ((val / 16) * 10) + (val % 16);
}