#include <Wire.h>
#define DS1307_ADDRESS 0x68
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
if (Wire.available() >= 7) {
int second = bcdToDec(Wire.read() & 0x7F);
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read() & 0x3F);
int dayOfWeek = bcdToDec(Wire.read());
int dayOfMonth = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());
Serial.print("Time: ");
Serial.print(dayOfMonth);
Serial.print("/");
Serial.print(month);
Serial.print("/");
Serial.print(year);
Serial.print(" ");
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.println(second);
delay(1000);
}
}
int bcdToDec(byte val) {
return ( (val / 16 * 10) + (val % 16) );
}