I think I nailed it. I added a function "RelayOff before the normal cycle starts; that seems to do the trick. Now I need to add a RTC, I have one. How do I do this?
/*
A time switch based on the TimeAlarm example
I want to switch realy 1 on for 10 seconds then go off after which
Relay 2 is witched on for 10 seconds and then off
However: this does not work as expected: both relays are ON immediately at 19:00
Eventually I want this to work with an RTC so I can use real time (I have a DS1307)
*/
#include <Time.h>
#include <TimeAlarms.h>
// Pins
#define RELAY1 6
#define RELAY2 7
void setup() {
// Start Serial & set pin to output
Serial.begin(9600);
//set relays
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
// start clock
setTime(19,0,0,9,5,15); // set time to 19:00 Sep 5 2015 I want to use an RTC eventually…
// create the alarms
Alarm.alarmRepeat(19,0,2, RelayOff); // 19:00:2 every day
Alarm.alarmRepeat(19,0,10, FarRedOn); // 19:00:10 every day
Alarm.alarmRepeat(19,0,20,FarRedOff); // 19:00:20 every day
Alarm.alarmRepeat(19,0,23, RedOn); // 19:00:23 every day
Alarm.alarmRepeat(19,0,33, RedOff); // 19:00:33 every day
Alarm.alarmRepeat(19,0,36, FarRedOn2); // 19:00:36 every day
Alarm.alarmRepeat(19,0,46,FarRedOff2); // 19:00:46 every day
Alarm.alarmRepeat(19,0,49, RedOn2); // 19:00:49 every day
Alarm.alarmRepeat(19,0,59, RedOff2); // 19:00:59 every day
//Alarm.timerRepeat(15, Repeats); // timer for every 15 seconds
// Alarm.timerOnce(10, OnceOnly); // called once after 10 seconds
}
void loop() {
digitalClockDisplay();
Alarm.delay(1000); // wait one second between clock display
}
//Relays OFF
void RelayOff(){
Serial.println(“All Off”);
digitalWrite(RELAY1,HIGH); // Turns OFF Relay 1
digitalWrite(RELAY2,HIGH); // Turns OFF Relay 2
}
// Switch Lights
void FarRedOn(){
Serial.println(“Far Red lights on”);
digitalWrite(RELAY1,LOW); // Turns ON Relay 1
}
void FarRedOff(){
Serial.println(“Far Red lights off”);
digitalWrite(RELAY1,HIGH); // Turns Relay 1 Off
}
void RedOn(){
Serial.println(“Red lights on”);
digitalWrite(RELAY2,LOW); // Turns ON Relays 2
}
void RedOff(){
Serial.println(“Red lights off”);
digitalWrite(RELAY2,HIGH); // Turns Relay 2 Off
}
void FarRedOn2(){
Serial.println(“Far Red lights on”);
digitalWrite(RELAY1,LOW); // Turns ON Relay 1
}
void FarRedOff2(){
Serial.println(“Far Red lights off”);
digitalWrite(RELAY1,HIGH); // Turns Relay 1 Off
}
void RedOn2(){
Serial.println(“Red lights on”);
digitalWrite(RELAY2,LOW); // Turns ON Relays 2
}
void RedOff2(){
Serial.println(“Red lights off”);
digitalWrite(RELAY2,HIGH); // Turns Relay 2 Off
}
void Repeats(){
Serial.println(“15 second timer”);
}
void OnceOnly(){
Serial.println(“This timer only triggers once”);
}
void digitalClockDisplay()
{
// digital clock display of the time
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.println();
}
void printDigits(int digits)
{
Serial.print(":");
if(digits < 10)
Serial.print(‘0’);
Serial.print(digits);
}