int qut=A0;//put leeg je mag wel langere namen hebben hoor
int hlf=A1;//put half vol
int thf=A2;// put 3 kwart vol
int ful=A3;// put vol
int motor=8;//pomp regenwaterput beter is pinregenpomp
int buz=7;// pomp grondwater beter is pingrondpomp
int q; // onderste sensor? is input A0
int h;// etc
int t;
int f;
int v=100; //gain regenwaterput
int b=0; //pomp grondwater beter is pompstart
int m=0; //pomp regenput
int led=9;//level leeg
int led1=10;//level half vol
int led2=11;// level 3kwart vol
int led3=12;// level vol
const int buttonPin = A4;//beregening aan
const int buttonPin1 = A5;
const int ledPin = 13;
const int Pin2 = 2;//zone1
const int Pin3 = 3;//zone2
const int Pin4 = 4;//zone3
const int Pin5 = 5;//zone4
const int Pin6 = 6;//zone5
int buttonState = 0;
int i = 0;
void setup()
{
pinMode(qut,INPUT);
pinMode(hlf,INPUT);
pinMode(qut,INPUT);
pinMode(ful,INPUT);
pinMode(motor,OUTPUT);
pinMode(buz,OUTPUT);
pinMode(led,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(Pin2,OUTPUT);
pinMode(Pin3,OUTPUT);
pinMode(Pin4,OUTPUT);
pinMode(Pin5,OUTPUT);
pinMode(Pin6,OUTPUT);
pinMode(buttonPin, INPUT);//beregening aan
}
void loop()
{
while (buttonState = digitalRead(buttonPin)) {waterlevel();
}
{
if (buttonState == HIGH )
for (int i=0;i<2; i++)
{
delay(125);
digitalWrite(Pin2, HIGH);
delay(18000); // hier staat je programma dus gewoon stil tot de tijd voorbij is.
// dit kun je voorkomen door millis te gebruiken.
digitalWrite(Pin2, LOW);
delay(3000); // je pomp staat nog aan dus eerst 3 aan en dan pas 2 uit
digitalWrite(Pin3,HIGH);
delay(18000);
digitalWrite(Pin3, LOW);
delay(3000);
digitalWrite(Pin4, HIGH);
delay(12000);
digitalWrite(Pin4, LOW);
delay(3000);
digitalWrite(Pin5,HIGH);
delay(90000);
digitalWrite(Pin5, LOW);
delay(3000);
digitalWrite(Pin6, HIGH);
delay(90000);
digitalWrite(Pin6, LOW);
delay(3000);
}
else
digitalWrite(Pin2,LOW);
digitalWrite(Pin3,LOW);
digitalWrite(Pin4,LOW);
digitalWrite(Pin5,LOW);
digitalWrite(Pin6,LOW);
je pomp moet ook uit.
}
}
void waterlevel()
{
q=analogRead(qut); // dit is erg kryptisch
h=analogRead(hlf);
t=analogRead(thf);
f=analogRead(ful);
if(f>v && t>v && h>v && q>v )//put vol spring dan ook naar een functie put vol waar je de commandos geeft, dat maakt het overzichtelijker
{
digitalWrite (motor,LOW);
digitalWrite (buz,LOW);
digitalWrite (led,HIGH);
digitalWrite (led1,HIGH);
digitalWrite (led2,HIGH);
digitalWrite (led3,HIGH);
}
else
digitalWrite (led,LOW);
digitalWrite (led1,LOW);
digitalWrite (led2,LOW);
digitalWrite (led3,LOW);
{
if(f<v && t>v && h>v && q>v)//put 3 kwart vol
{
digitalWrite (motor,LOW);
digitalWrite (buz,LOW);
digitalWrite (led,HIGH);
digitalWrite (led1,HIGH);
digitalWrite (led2,HIGH);
}
else
digitalWrite (led,LOW);
digitalWrite (led1,LOW);
digitalWrite (led2,LOW);
{
if(f<v && t<v && h>v && q>v)//put half vol
{
digitalWrite (motor,LOW);
digitalWrite (buz,HIGH);
digitalWrite (led,HIGH);
digitalWrite (led1,HIGH);
}
else
digitalWrite (led,LOW);
digitalWrite (led1,LOW);
if(f<v && t<v && h<v && q>v)//put kwart vol
{
digitalWrite (motor,LOW);
digitalWrite (buz,HIGH);
digitalWrite (led,HIGH);
}
else
digitalWrite (led,LOW);
{
if(f<v && t<v && h<v && q<v)// put leeg
{
digitalWrite (motor,HIGH);
digitalWrite (buz,HIGH);
}
else;
}
}}}
zo kun je weer een hoop verbeteren aan je programma, en je bent goed bezig hoor, vooral het bedenksel is leuk, het is niet praktisch als je 18 seconden sproeit, maar ach om te testen is het wel handig.
zet die tijden ook in een variabele (long) dan hoef je maar op een plek te wijzigen.