Ok guys, got my DS1307 today, wired her up and shes working fine, however got one problem, the alarms wont trigger ! - any idea where im going wrong here as ive been reading the examples etc and cant see anything obvious -
#include <Wire.h>
#include "RTClib.h"
#include <Time.h>
#include <TimeAlarms.h>
RTC_DS1307 RTC;
// RELAYS
int pumprelay = 3;
int filterrelay = 4;
int lightsrelay = 5;
int heaterrelay = 6;
//BUTTONS
int FeedingButton = 7;
int HeaterButton = 18;
//LEDS
int lightsled = 8;
int pumpled = 9;
int filterled = 10;
int FeedingLED = 11;
int heaterled = 12;
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
// the setup routine runs once when you press reset:
void setup() {
Serial.begin(9600);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
}
// initialize the digital pin as an output.
pinMode(lightsrelay, OUTPUT);
pinMode(lightsled, OUTPUT);
pinMode(heaterrelay, OUTPUT);
pinMode(heaterled, OUTPUT);
pinMode(pumprelay, OUTPUT);
pinMode(pumpled, OUTPUT);
pinMode(filterrelay, OUTPUT);
pinMode(filterled, OUTPUT);
pinMode(FeedingButton, INPUT);
pinMode(FeedingLED, OUTPUT);
Serial.println("Startup Completed");
FilterOn();
Alarm.alarmRepeat(23,00,0, Night); // 8:30am every day
Alarm.alarmRepeat(06,00,0, Day); // 8:30am every day
Alarm.alarmRepeat(21,55,30, Feeding); // 8:30am every day
}
// the loop routine runs over and over again forever:
void loop() {
DateTime now = RTC.now();
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
// read the state of the pushbutton value:
buttonState = digitalRead(FeedingButton);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// Start Feeding Cyle
Feeding();
}
else {
// Continue Normal Program
}
Alarm.delay(1000); // wait one second between clock display
}
void Feeding() {
digitalWrite(FeedingLED, HIGH); // Set Feeding LED On
Serial.println("Feeding Cycle Started");
LightsOn();
PumpOff();
FilterOff();
delay(6000);
digitalWrite(FeedingLED, LOW); // Set Feeding LED Off
Serial.println("Feeding Cycle Ended");
LightsOff();
PumpOn();
FilterOn();
delay(6000);
}
void Night () {
LightsOff();
PumpOff();
}
void Day () {
LightsOn();
PumpOn();
}
void LightsOn() {
digitalWrite(lightsrelay, HIGH); // Set Lights On
digitalWrite(lightsled, HIGH); // Set LED On
Serial.println("Lights On");
}
void LightsOff() {
digitalWrite(lightsrelay, LOW); // Set Lights Off
digitalWrite(lightsled, LOW); // Set LED Off
Serial.println("Lights Off");
}
void PumpOn() {
digitalWrite(pumprelay, HIGH); // Set Pump On
digitalWrite(pumpled, HIGH); // Set LED On
Serial.println("Pump On");
}
void PumpOff() {
digitalWrite(pumprelay, LOW); // Set Pump Off
digitalWrite(pumpled, LOW); // Set LED Off
Serial.println("Pump Off");
}
void FilterOn() {
digitalWrite(filterrelay, HIGH); // Set Filter On
digitalWrite(filterled, HIGH); // Set LED On
Serial.println("Filter On");
}
void FilterOff() {
digitalWrite(filterrelay, LOW); // Set Filter Off
digitalWrite(filterled, LOW); // Set LED Off
Serial.println("Filter Off");
}