first Arduino program - works but could use tinkering
the script verifies , compiles fine. wanted post code here incase of better way write this.
future plans: (indoor plants) add ventilation controllers, air temp. humidity sensors etc.
i prefer use switch...case statement valve controller , separate function turn on pump if valve open
this quick draft really. have not acquired hardware yet.
hardware:
arduino uno r3
4 12v dc solenoid valves
12v dc pump
relays
tubing
watering rings
55 gallon barrel.
future plans: (indoor plants) add ventilation controllers, air temp. humidity sensors etc.
i prefer use switch...case statement valve controller , separate function turn on pump if valve open
this quick draft really. have not acquired hardware yet.
hardware:
arduino uno r3
4 12v dc solenoid valves
12v dc pump
relays
tubing
watering rings
55 gallon barrel.
code: [select]
//pump resources
const int pumppin = 4;
//solenoid valve resources 0-3
const int slndpin0 = 0;
const int slndpin1 = 1;
const int slndpin2 = 2;
const int slndpin3 = 3;
//sensory input
const int analog0 = a0;
const int analog1 = a1;
const int analog2 = a2;
const int analog3 = a3;
//values
#define trigger 250 //moisture level start watering()
//moisture level
int humidity0 = 0;
int humidity1 = 0;
int humidity2 = 0;
int humidity3 = 0;
//sensor sample collector
long int moisturesum0 = 0;
long int moisturesum1 = 0;
long int moisturesum2 = 0;
long int moisturesum3 = 0;
void setup() {
serial.begin(9600);
pinmode(pumppin, output);
pinmode(slndpin0, output);
pinmode(slndpin1, output);
pinmode(slndpin2, output);
pinmode(slndpin3, output);
}
void loop() {
delay(3000);
watertest();
//feed plant 0
if (humidity0 <= trigger){
digitalwrite(slndpin0, high);
delay(250);
digitalwrite(pumppin, high);
delay(1500);
digitalwrite(pumppin, low);
digitalwrite(slndpin0, low);
}
//feed plant 1
if (humidity1 <= trigger){
digitalwrite(slndpin1, high);
delay(250);
digitalwrite(pumppin, high);
delay(1500);
digitalwrite(pumppin, low);
digitalwrite(slndpin1, low);
}
//feed plant 2
if (humidity2 <= trigger){
digitalwrite(slndpin2, high);
delay(250);
digitalwrite(pumppin, high);
delay(1500);
digitalwrite(pumppin, low);
digitalwrite(slndpin2, low);
}
//feed plant 3
if (humidity3 <= trigger){
digitalwrite(slndpin3, high);
delay(250);
digitalwrite(pumppin, high);
delay(1500);
digitalwrite(pumppin, low);
digitalwrite(slndpin3, low);
}
if(pumppin, high){
digitalwrite(pumppin, low);
}
}
void watertest() {
(int = 0; < 30; i++) {
moisturesum0 = moisturesum0 + analogread(analog0);
moisturesum1 = moisturesum1 + analogread(analog1);
moisturesum2 = moisturesum2 + analogread(analog2);
moisturesum3 = moisturesum3 + analogread(analog3);
}
humidity0 = moisturesum0 / 30; //get average soil humidity
humidity1 = moisturesum1 / 30;
humidity2 = moisturesum2 / 30;
humidity3 = moisturesum3 / 30;
// print results serial monitor:
serial.print("humidity0 = " );
serial.print(humidity0);
serial.print("\t humidity1 = ");
serial.print(humidity1);
serial.print("\t humidity2 = ");
serial.print(humidity2);
serial.print("\t humidity3 = ");
serial.println(humidity3);
serial.println();
moisturesum0 = 0; //reset readings
moisturesum1 = 0;
moisturesum2 = 0;
moisturesum3 = 0;
delay(3000); //3 second delay
}
you haven't gotten responses, because people not upload unknown files. read how post sticky @ top of forum nick gammon on how post source code here using code tags. better response.
Arduino Forum > Using Arduino > Programming Questions > first Arduino program - works but could use tinkering
arduino
Comments
Post a Comment