Thanks, but its more like hairbrained clusterfuckery.... lol
I shouldn't knock it tho - haven't watered that room manually since the system was installed. Arduinos kick ass....
_______________
Valve and pump code:
_______________
#define RELAY_ON 0
#define RELAY_OFF 1
/*-----( Declare objects )-----*/
/*-----( Declare Variables )-----*/
#define Relay_1 2 // Relay 1 = Arduino Digital I/O pin number 2, Relay 2 = I/O pin number 3, etc...
#define Relay_2 3
#define Relay_3 4
#define Relay_4 5
#define Relay_5 6
#define Relay_6 7
#define Relay_7 8
#define Relay_8 9
void setup() /****** SETUP: RUNS ONCE ******/
{
//-------( Initialize Pins so relays are inactive at reset)----
digitalWrite(Relay_1, RELAY_OFF);
digitalWrite(Relay_2, RELAY_OFF);
digitalWrite(Relay_3, RELAY_OFF);
digitalWrite(Relay_4, RELAY_OFF);
digitalWrite(Relay_5, RELAY_OFF);
digitalWrite(Relay_6, RELAY_OFF);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
//---( THEN set pins as outputs )----
pinMode(Relay_1, OUTPUT);
pinMode(Relay_2, OUTPUT);
pinMode(Relay_3, OUTPUT);
pinMode(Relay_4, OUTPUT);
pinMode(Relay_5, OUTPUT);
pinMode(Relay_6, OUTPUT);
pinMode(Relay_7, OUTPUT);
pinMode(Relay_8, OUTPUT);
delay(7000); //Check that all relays are inactive at Reset, seven second delay until initializing sequence
digitalWrite(Relay_1, RELAY_ON); // Activate FILLING PUMP
delay(30000); // Fill inductor tank for thirty seconds before valve reset
digitalWrite(Relay_4, RELAY_ON); // Open DRAIN VALVE
delay(1500); // DRAIN VALVE open for one and one half seconds to reset seal under pressure
digitalWrite(Relay_4, RELAY_OFF); // Close DRAIN VALVE
delay(150000); // up to three minutes TOTAL filling inductor tank, switched off by APEX float2
digitalWrite(Relay_1, RELAY_OFF); // Turn off FILLING PUMP
delay(1000); // wait one second between functions
digitalWrite(Relay_2, RELAY_ON); // MIXING PUMP on
delay(570000); // pump mixes for nine minutes thirty seconds while nutrient components are dosed
digitalWrite(Relay_2, RELAY_OFF); // MIXING PUMP off
delay(5000); // wait five seconds between functions
digitalWrite(Relay_3, RELAY_ON); // MONDI PUMP on, begin feeding
delay(184000); // one hundred eighty four second feeding
digitalWrite(Relay_3, RELAY_OFF); // MONDI PUMP off
delay(21000); // wait twenty one seconds between functions and allow plumbing to drain via siphon
digitalWrite(Relay_4, RELAY_ON); // Open DRAIN VALVE
delay(42000); // forty two seconds draining excess nutrient
digitalWrite(Relay_1, RELAY_ON); // Activate FILLING PUMP
delay(3000); // three seconds plain water RINSE to drain
digitalWrite(Relay_4, RELAY_OFF); // Close DRAIN VALVE
delay(24000); // twenty four seconds plain water RINSE FILL
digitalWrite(Relay_1, RELAY_OFF); // FILLING PUMP off
delay(500); // half second pause between functions
digitalWrite(Relay_2, RELAY_ON); // MIXING PUMP on
delay(7000); // pump continues mixing for seven seconds before drain opens
digitalWrite(Relay_2, RELAY_OFF); // MIXING PUMP OFF
delay(1000); // one second pause before drain open
digitalWrite(Relay_4, RELAY_ON); // Open DRAIN VALVE
delay(42000); // Open DRAIN VALVE for forty two seconds draining rinse waste
digitalWrite(Relay_4, RELAY_OFF); // Close DRAIN VALVE
}//--(end setup )---
void loop() //****** LOOP is empty! Including dosing instructions in setup will allow program to run ONLY ONE TIME
{}//--(end main loop )---
___________________
Blenders and dosing pumps:
___________________
#define RELAY_ON 0
#define RELAY_OFF 1
/*-----( Declare objects )-----*/
/*-----( Declare Variables )-----*/
#define Relay_1 2 // Relay 1 = Arduino Digital I/O pin number 2, Relay 2 = I/O pin number 3, etc...
#define Relay_2 3
#define Relay_3 4
#define Relay_4 5
#define Relay_5 6
#define Relay_6 7
#define Relay_7 8
#define Relay_8 9
void setup() /****** SETUP: RUNS ONCE ******/
{
//-------( Initialize Pins so relays are inactive at reset)----
digitalWrite(Relay_1, RELAY_OFF);
digitalWrite(Relay_2, RELAY_OFF);
digitalWrite(Relay_3, RELAY_OFF);
digitalWrite(Relay_4, RELAY_OFF);
digitalWrite(Relay_5, RELAY_OFF);
digitalWrite(Relay_6, RELAY_OFF);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
//---( THEN set pins as outputs )----
pinMode(Relay_1, OUTPUT);
pinMode(Relay_2, OUTPUT);
pinMode(Relay_3, OUTPUT);
pinMode(Relay_4, OUTPUT);
pinMode(Relay_5, OUTPUT);
pinMode(Relay_6, OUTPUT);
pinMode(Relay_7, OUTPUT);
pinMode(Relay_8, OUTPUT);
delay(200000); //Allow inductor tank to fill, 200 second delay until initializing sequence.
digitalWrite(Relay_5, RELAY_ON); // set the Relay ON, MIXING BASE PART A
delay(1000); // one second mixing
digitalWrite(Relay_5, RELAY_OFF); // blender one switched off
delay(1000); // wait one second between activating blender and pump one
digitalWrite(Relay_1, RELAY_ON); // set the Relay ON, dosing pump ONE
delay(96000); // pump ONE ON, dosing apx 100ml BASE PART A
digitalWrite(Relay_1, RELAY_OFF); // pump ONE switched off
delay(30000); // wait 30 seconds between activating pump ONE and pump TWO
digitalWrite(Relay_6, RELAY_ON); // set the Relay ON, MIXING BASE PART B
delay(1000); // one second mixing
digitalWrite(Relay_6, RELAY_OFF); // blender two switched off
delay(1000); // wait one second between activating blender and pump two
digitalWrite(Relay_2, RELAY_ON); // set the Relay ON, dosing pump TWO
delay(93000); // pump TWO ON, dosing apx 100ml BASE PART B
digitalWrite(Relay_2, RELAY_OFF); // pump TWO switched off
delay(30000); // wait 30 seconds between activating pump TWO and pump THREE
digitalWrite(Relay_7, RELAY_ON); // set the Relay ON, MIXING
Floralicious PLUS
delay(1000); // one second mixing
digitalWrite(Relay_7, RELAY_OFF); // blender three switched off
delay(1000); // wait one second between activating blender and pump three
digitalWrite(Relay_3, RELAY_ON); // set the Relay ON, dosing pump THREE
delay(63000); // pump THREE ON, dosing apx 63ml Floralicous Bloom
digitalWrite(Relay_3, RELAY_OFF); // pump THREE switched off
delay(30000); // wait 30 seconds between activating pump THREE and pump FOUR
digitalWrite(Relay_8, RELAY_ON); // set the Relay ON, MIXING FloraNectar
delay(1000); // one second mixing
digitalWrite(Relay_8, RELAY_OFF); // blender four switched off
delay(1000); // wait one second between activating blender and pump four
digitalWrite(Relay_4, RELAY_ON); // set the Relay ON, dosing pump FOUR
delay(84000); // pump FOUR ON, dosing apx 84ml FloraNectar
digitalWrite(Relay_4, RELAY_OFF); // pump FOUR switched off
}//--(end setup )---
void loop() //****** LOOP is empty! Including dosing instructions in setup will allow program to run ONLY ONE TIME
{}//--(end main loop )---
These programs are best used as a boilerplate for your own setup. The times in the code above are calibrated for my setup - you will need to tweak them for your own system. I hope this gets somebody some time off. We all deserve that now and then :) Happy summer folks