Hi guys, I have a project enclosure with 8 power outlets. inside is a sainsmart 8 relay module and an arduino uno. Hardware works now i am stuck on the sketch. Now i don't have an RTC yet. but i was wandering if there is a way around this if I were to wright on off cycles for each relay channel in a 24 hour schedule and just made the loop 24 hours. I just need to be able to schedule timed on off cycles in seconds, minutes, hours. For each of the 8 relay channels. Here is my first attempt at writing code. It is one 4 hour cycle. It works fine but when i copy and paste to make it a 24 hour day it does all sorts of unplanned events. also what seem like freezes and glitches causing the power in the channels to go off schedule.
// 8-channel Relay Board
// This board is active HIGH
/*-----( Import needed libraries )-----*/
/*-----( Declare Constants )-----*/
#define RELAY_ON 0
#define RELAY_OFF 1
#define PpkPumps 4 // Arduino Digital I/O pin number
#define Air 5
#define Purge 6
#define CircFan 7
#define Lights 8
#define PurgeFan 9
#define Relay_7 10
#define Relay_8 11
/*-----( Declare objects )-----*/
/*-----( Declare Variables )-----*/
int waittime; // Delay between changes
void setup() /****** SETUP: RUNS ONCE ******/
{
waittime = 1000;
//-------( Initialize Pins so relays are inactive at reset)----
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_OFF);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_OFF);
digitalWrite(PurgeFan, RELAY_OFF);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
//---( THEN set pins as outputs )----
pinMode(PpkPumps, OUTPUT);
pinMode(Air, OUTPUT);
pinMode(Purge, OUTPUT);
pinMode(CircFan, OUTPUT);
pinMode(Lights, OUTPUT);
pinMode(PurgeFan, OUTPUT);
pinMode(Relay_7, OUTPUT);
pinMode(Relay_8, OUTPUT);
delay(1000); //Check that all relays are inactive at Reset
}//--(end setup )---
void loop()
{
// 1
digitalWrite(PpkPumps, RELAY_ON);
digitalWrite(Air, RELAY_OFF);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(80000); //80 seconds ppk fill
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000);// 20 min just air
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_ON);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000); //20 min air and circfan
digitalWrite(PpkPumps, RELAY_ON);
digitalWrite(Air, RELAY_OFF);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(80000); //80 seconds ppk fill
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000);// 20 min just air
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_ON);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000); //20 min air and circfan
digitalWrite(PpkPumps, RELAY_ON);
digitalWrite(Air, RELAY_OFF);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(80000); //100 seconds ppk fill
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000);// 20 min just air
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_ON);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000); //20 min air and circfan
digitalWrite(PpkPumps, RELAY_ON);
digitalWrite(Air, RELAY_OFF);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(80000); //100 seconds ppk fill
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000);// 20 min just air
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_ON);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000); //20 min air and circfan
digitalWrite(PpkPumps, RELAY_ON);
digitalWrite(Air, RELAY_OFF);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(80000); //100 seconds ppk fill
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000);// 20 min just air
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_ON);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1200000); //20 min air and circfan
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_OFF);
digitalWrite(Purge, RELAY_ON);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(600000); // 10 min purge ppk
digitalWrite(PpkPumps, RELAY_OFF);
digitalWrite(Air, RELAY_ON);
digitalWrite(Purge, RELAY_OFF);
digitalWrite(CircFan, RELAY_OFF);
digitalWrite(Lights, RELAY_ON);
digitalWrite(PurgeFan, RELAY_ON);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
delay(1400000);// 21.6 min just air