#include <Wire.h>
#include <DS1307.h>
DS1307 clock;//define a object of DS1307 class
unsigned long lastTimeCheck = 0;//timer to track last event
int intervalCheck = 1000;// once per sec
byte currHour = 0;
void setup() {
Serial.begin(9600);
clock.begin();
clock.fillByYMD(2013, 1, 19); //Jan 19,2013
clock.fillByHMS(8, 28, 30); //15:28 30"
clock.fillDayOfWeek(SAT);//Saturday
clock.setTime();//write time to the RTC chip
printTime();
}
void loop() {
unsigned long currMillis = millis();
if (currMillis-lastTimeCheck >=intervalCheck)
{
lastTimeCheck = currMillis;
clock.getTime();
if (clock.hour != currHour)
{
currHour = clock.hour;
switch (clock.hour) { // Friendly printout the weekday
case 5:
Serial.print("5 am");
break;
case 6:
Serial.print("6 am");
break;
case 7:
Serial.print("7 am");
break;
case 8:
Serial.print("8 am");
break;
case 9:
Serial.print("0 am");
break;
case 10:
Serial.print("10 am");
break;
case 11:
Serial.print("11 am");
break;
}
}
}
}
/*Function: Display time on the serial monitor*/
void printTime() {
clock.getTime();
Serial.print(clock.hour, DEC);
Serial.print(":");
Serial.print(clock.minute, DEC);
Serial.print(":");
Serial.print(clock.second, DEC);
Serial.print(" ");
Serial.print(clock.month, DEC);
Serial.print("/");
Serial.print(clock.dayOfMonth, DEC);
Serial.print("/");
Serial.print(clock.year + 2000, DEC);
Serial.print(" ");
Serial.print(clock.dayOfMonth);
Serial.print("*");
switch (clock.dayOfWeek) { // Friendly printout the weekday
case MON:
Serial.print("MON");
break;
case TUE:
Serial.print("TUE");
break;
case WED:
Serial.print("WED");
break;
case THU:
Serial.print("THU");
break;
case FRI:
Serial.print("FRI");
break;
case SAT:
Serial.print("SAT");
break;
case SUN:
Serial.print("SUN");
break;
}
Serial.println(" ");
}