int EV0 = 32; //elettrovalvola generale
int EV1 = 33; //elettrovalvola zona 1
int EV2 = 25; //elettrovalvola zona 2
int EV3 = 26; //elettrovalvola zona 3
int EV4 = 27; //elettrovalvola zona 4
int EV5 = 14; //elettrovalvola zona 5
int EV6 = 16; //elettrovalvola zona 6
int EV7 = 17; //elettrovalvola zona 7
int EV8 = 5; //elettrovalvola zona 8
int EV9 = 18; //elettrovalvola zona 9
int EV10 = 19; //elettrovalvola zona 10
int EV11 = 21; //elettrovalvola zona 11
int STARTP1 = 4; //Start orologio PROGRAMMA 1
int STARTP2 = 2; //Start orologio PROGRAMMA 2
int STATO1 = 0; // registro d'appoggio per stato ingresso1 (start orologio)
int STATO2 = 0; // registro d'appoggio per stato ingresso2 (start orollogio)
unsigned long lastDebounceTime = 0; // Tempo dell'ultimo cambiamento di stato
unsigned long debounceDelay = 200; // Tempo minimo tra i cambiamenti (200 ms)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
Serial.begin(9600);
Serial.println("Controllo irrigazione VER 3.0");
pinMode(EV0, OUTPUT); //imposto pin in uscita generale
pinMode(EV1, OUTPUT); //imposto pin in uscita
pinMode(EV2, OUTPUT); //imposto pin in uscita
pinMode(EV3, OUTPUT); //imposto pin in uscita
pinMode(EV4, OUTPUT); //imposto pin in uscita
pinMode(EV5, OUTPUT); //imposto pin in uscita
pinMode(EV6, OUTPUT); //imposto pin in uscita
pinMode(EV7, OUTPUT); //imposto pin in uscita
pinMode(EV8, OUTPUT); //imposto pin in uscita
pinMode(EV9, OUTPUT); //imposto pin in uscita
pinMode(EV10, OUTPUT); //imposto pin in uscita
pinMode(EV11, OUTPUT); //imposto pin in uscita
pinMode(STARTP1, INPUT_PULLDOWN);
pinMode(STARTP2, INPUT_PULLDOWN);//imposto pin in ingresso con resitenza di pull down integrata
//i relè sono triggerati sul fronte di discesa quindi devo attivare le uscite con stato logico alto per ottenere lo spegnimento del relè
digitalWrite(EV0, HIGH); //disabilita ev0 GENERALE
digitalWrite(EV1, HIGH); //disabilita ev1
digitalWrite(EV2, HIGH); //disabilita ev2
digitalWrite(EV3, HIGH); //disabilita ev3
digitalWrite(EV4, HIGH); //disabilita ev4
digitalWrite(EV5, HIGH); //disabilita ev5
digitalWrite(EV6, HIGH); //disabilita ev6
digitalWrite(EV7, HIGH); //disabilita ev7
digitalWrite(EV8, HIGH); //disabilita ev8
digitalWrite(EV9, HIGH); //disabilita ev9
digitalWrite(EV10, HIGH); //disabilita ev10
digitalWrite(EV11, HIGH); //disabilita ev11
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Ciclo_valvole(int T1, int T2, int T3, int T4, int T5, int T6, int T7, int T8, int T9, int T10, int T11 )
{
digitalWrite(EV1, LOW); //Apri l'elettrovalvola zona 1 Pop-UP SUD-OVEST (21)
Serial.println("Inizio Irrigazione zona 1 Pop-UP SUD-OVEST");
delay(T1);
digitalWrite(EV1, HIGH);//chiude l'elettrovalvola zona 1 Pop-UP SUD-OVEST
Serial.println("Fine Irrigazione zona 1 Pop-UP SUD-OVEST");
//*********************************************************************************************************************************************************
digitalWrite(EV2, LOW); //Apri l'elettrovalvola zona 2 Pop-UP SUD (19)
Serial.println("Inizio Irrigazione zona 2 Pop-UP SUD");
delay(T2);
digitalWrite(EV2, HIGH);//chiude l'elettrovalvola zona 2 Pop-UP SUD
Serial.println("Fine Irrigazione zona 2 Pop-UP SUD");
//**********************************************************************************************************************************************************
digitalWrite(EV3, LOW); //Apri l'elettrovalvola zona 3 Pop-UP SUD-EST (22)
Serial.println("Inizio Irrigazione zona 3 Pop-UP SUD-EST");
delay(T3);
digitalWrite(EV3, HIGH);//chiude l'elettrovalvola zona 3 Pop-UP SUD-EST
Serial.println("Fine Irrigazione zona 3 Pop-UP SUD-EST");
//**********************************************************************************************************************************************************
digitalWrite(EV4, LOW); //Apri l'elettrovalvola zona 4 Pop-UP EST -sx (17)
Serial.println("Inizio Irrigazione zona 4 Pop-UP EST-sx");
delay(T4);
digitalWrite(EV4, HIGH);//chiude l'elettrovalvola zona 4 Pop-UP EST-sx
Serial.println("Fine Irrigazione zona 4 Pop-UP EST-sx");
//**********************************************************************************************************************************************************
digitalWrite(EV5, LOW); //Apri l'elettrovalvola zona 5 Pop-UP EST-dx (14)
Serial.println("Inizio Irrigazione zona 5 Pop-UP EST-dx");
delay(T5);
digitalWrite(EV5, HIGH);//chiude l'elettrovalvola zona 5 Pop-UP EST-dx
Serial.println("Fine Irrigazione zona 5 Pop-UP EST-dx");
//**********************************************************************************************************************************************************
digitalWrite(EV6, LOW); //Apri l'elettrovalvola zona 6 Pop-UP NORD-EST (15)
Serial.println("Inizio Irrigazione zona 6 Pop-UP NORD-EST");
delay(T6);
digitalWrite(EV6, HIGH);//chiude l'elettrovalvola zona 6 Pop-UP NORD-EST
Serial.println("Fine Irrigazione zona 6 Pop-UP NORD-EST");
//**********************************************************************************************************************************************************
digitalWrite(EV7, LOW); //Apri l'elettrovalvola zona 7 Pop-UP NORD (16)
Serial.println("Inizio Irrigazione zona 7 Pop-UP NORD");
delay(T7);
digitalWrite(EV7, HIGH);//chiude l'elettrovalvola zona 7 Pop-UP NORD
Serial.println("Fine Irrigazione zona 7 Pop-UP NORD");
//**********************************************************************************************************************************************************
digitalWrite(EV8, LOW); //Apri l'elettrovalvola zona 8 Pop-UP NORD-OVEST (4)
Serial.println("Inizio Irrigazione zona 8 Pop-UP NORD-OVEST");
delay(T8);
digitalWrite(EV8, HIGH);//chiude l'elettrovalvola zona 8 Pop-UP NORD-OVEST
Serial.println("Fine Irrigazione zona 8 Pop-UP NORD-OVEST");
//**********************************************************************************************************************************************************
digitalWrite(EV9, LOW); //Apri l'elettrovalvola zona 9 GOCCIOLATORI SUD (20)
Serial.println("Inizio Irrigazione zona 9 GOCCIOLATORI SUD ");
delay(T9);
digitalWrite(EV9, HIGH);//chiude l'elettrovalvola zona 9 GOCCIOLATORI SUD
Serial.println("Fine Irrigazione zona 9 GOCCIOLATORI SUD ");
//**********************************************************************************************************************************************************
digitalWrite(EV10, LOW); //Apri l'elettrovalvola zona 10 GOCCIOLATORI SUD-EST (13)
Serial.println("Inizio Irrigazione zona 10 GOCCIOLATORI SUD-EST");
delay(T10);
digitalWrite(EV10, HIGH);//chiude l'elettrovalvola zona 10 GOCCIOLATORI SUD-EST
Serial.println("Fine Irrigazione zona 10 GOCCIOLATORI SUD-EST");
//**********************************************************************************************************************************************************
digitalWrite(EV11, LOW); //Apri l'elettrovalvola zona 11 GOCCIOLATORI NORD+OVEST (1 + 3)
Serial.println("Inizio Irrigazione zona 11 GOCCIOLATORI NORD+OVEST");
delay(T11);
digitalWrite(EV11, HIGH);//chiude l'elettrovalvola zona 11 GOCCIOLATORI NORD+OVEST
Serial.println("Fine Irrigazione zona 11 GOCCIOLATORI NORD+OVEST");
//**********************************************************************************************************************************************************
// digitalWrite(EV10, LOW); //Apri l'elettrovalvola zona n
// Serial.println("Inizio Irrigazione zona n");
// delay(TN);
// digitalWrite(EV10, HIGH);//chiude l'elettrovalvola zona n
// Serial.println("Fine Irrigazione zona n");
//**********************************************************************************************************************************************************
digitalWrite(EV0,HIGH); //chiudo elettrovalvola generale
}
void loop()
{
// Programma irrigazione 1
STATO1 = digitalRead(STARTP1);
if (STATO1 == HIGH && millis() - lastDebounceTime > debounceDelay) { // Debounce sul pulsante di avvio programma 1
lastDebounceTime = millis();
digitalWrite(EV0, LOW);
Serial.println("Inizio ciclo irrigazione Programma 1 Pop-UP con acqua di rete");
Ciclo_valvole(30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 3, 3, 3);
Serial.println("Fine ciclo irrigazione Programma 1 Pop-UP");
}
// Programma irrigazione 2
STATO2 = digitalRead(STARTP2);
if (STATO2 == HIGH && millis() - lastDebounceTime > debounceDelay) { // Debounce sul pulsante di avvio programma 2
lastDebounceTime = millis();
digitalWrite(EV0, LOW);
Serial.println("Inizio ciclo irrigazione Programma 2 GOCCIOLATORI con acqua di rete");
Ciclo_valvole(3, 3, 3, 3, 3, 3, 3, 3, 30000, 30000, 30000);
Serial.println("Fine ciclo irrigazione Programma 2 GOCCIOLATORI");
}
}