/* * based on: * TimeRTC.pde * example code illustrating Time library with Real Time Clock. * */ #include #include #include // a basic DS1307 library that returns time as a time_t int led = 13; int indicator = 0; void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(led, OUTPUT); Serial.begin(9600); while (!Serial) ; // wait until Arduino Serial Monitor opens setSyncProvider(RTC.get); // the function to get the time from the RTC if(timeStatus()!= timeSet) Serial.println("Unable to sync with the RTC"); else Serial.println("RTC has set the system time"); } void loop() { if (timeStatus() == timeSet) { checkTime(); } else { // fast blinking indicate that time is not set or RTC is not plugged int i; for (i = 1; i <= 50; i++) { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(50); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(50); // wait for a second } } delay(1000); } void checkTime(){ if ((hour()==6 || hour()==7 ) && (indicator==0)) { pressSTART(); } if ((hour()==8) && (minute()==1)) { pressSTOP(); } if ((hour()==12 || hour()==13 ) && (indicator==0)) { pressSTART(); } if ((hour()==14) && (minute()==1)) { pressSTOP(); } if ((hour()==17) && (indicator==0)) { pressSTART(); } if ((hour()==18) && (minute()==25)) { pressSTOP(); } } void pressSTOP(){ digitalWrite(led, LOW); // turn the LED off by making the voltage LOW indicator = 0; digitalWrite(8, HIGH); delay(500); digitalWrite(8, LOW); delay(61000); } void pressSTART(){ digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) indicator = 1; digitalWrite(9, HIGH); delay(500); digitalWrite(9, LOW); delay(61000); }