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.

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

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor