#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DS1307_ADDRESS 0x68
LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line
int count = 0, last_count = -1;
void setup() {
Serial.begin(115200);
Serial.println("Hello");
Wire.begin();
lcd.init();
lcd.backlight();
lcd.print("Serial counter Example");
delay(1000);
lcd.clear();
}
void loop() {
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0);
Wire.endTransmission();
if (Wire.requestFrom(DS1307_ADDRESS, 3) == 3) {
byte value_seconds = Wire.read();
// Serial.print("value_seconds : ");
// Serial.println(value_seconds);
int currentSecond = bcdToDec(value_seconds);
// Serial.print("Current Second : ");
// Serial.println(currentSecond);
byte value_minutes = Wire.read();
// Serial.print("value_minutes : ");
// Serial.println(value_minutes);
int currentMinute = bcdToDec(value_minutes);
// Serial.print("Current Minute : ");
// Serial.println(currentMinute);
byte value_hours = Wire.read();
// Serial.print("value_hours : ");
// Serial.println(value_hours);
int currenthour = bcdToDec(value_hours);
// Serial.print("Current hour : ");
// Serial.println(currenthour);
Serial.println(String(currenthour) + " : " + String(currentMinute) + " : " +
String(currentSecond));
lcd.setCursor(0, 0);
lcd.print("hours : ");
lcd.print(currenthour);
lcd.setCursor(0, 1);
lcd.print("minutes : ");
lcd.print(currentMinute);
if (currentSecond == 0)
{
lcd.setCursor(11, 2);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print("seconds : ");
lcd.print(currentSecond);
}
else
{
lcd.setCursor(0, 2);
lcd.print("seconds : ");
lcd.print(currentSecond);
}
// lcd.setCursor(0,2);
// lcd.print("seconds : ");
// lcd.print(currentSecond);
// int seconds=bcdToDec(Wire.read())
// lcd.setCursor(5,2);
// lcd.print("Seconds : ");
// if(bcdToDec(Wire.read())==59);
// {
// lcd.print())
// lcd.SetCursor()
// }
// // Serial.print(bcdToDec(Wire.read()));
// // Serial.print(" seconds, ");
// lcd.setCursor(5,1);
// lcd.print("Minutes : ");
// lcd.print(bcdToDec(Wire.read()));
// // Serial.print(" minutes, ");
// lcd.setCursor(5,0);
// lcd.print("Hours : ");
// lcd.print(bcdToDec(Wire.read()));
// Serial.print(" hours, ");
// Serial.print(bcdToDec(Wire.read()));
// Serial.print(" day of week, ");
// Serial.print(bcdToDec(Wire.read()));
// Serial.print(" day, ");
// Serial.print(bcdToDec(Wire.read()));
// Serial.print(" month, ");
// Serial.print(bcdToDec(Wire.read())+2000);
// Serial.println(" year");
}
else {
Serial.println(F("Failed to get RTC date and time"));
};
delay(1000);
}
byte bcdToDec(byte val) {
return ( (val / 16 * 10) + (val % 16) );
}