Qualcosa non va con la funzione del troppopieno... in pratica funziona al contrario cioè quando l'interruttore del troppopieno è CHIUSO l'elettrovalvola si apre e viceversa. Ovviamente la prima cosa che ho fatto è stata quella di invertire le costanti APERTO a 1 e CHIUSO a 0 ma in questo modo non funziona proprio.
Sarà che nel codice non c'è una condizione che gli dice espressamente cosa deve fare quando è APERTO?
const byte ACCESO = LOW;
const byte SPENTO = HIGH;
const byte APERTO = 0;
const byte CHIUSO = 1;
....
if (first_pass) {
Serial.println("Fase: RIEMPIMENTO / RABOCCO");
digitalWrite(pinElettrovalvola, ACCESO); // valvola aperta
}
if (digitalRead(pinTroppopieno) == CHIUSO) { // se bidone pieno
digitalWrite(pinElettrovalvola, SPENTO); // chiudi valvola
if (ePausa == ATTIVO) { fase = PAUSA_24H; } // Se ePausa e true vai a PAUSA 24
else { fase = RIPOSO; } // altrimenti vai a RIPOSO
}
else if (trascorso >= 180) { // e se timeout riempimento supera i 3 minuti
digitalWrite(pinElettrovalvola, SPENTO); // chiudi valvola
fase = ALLARME; // vai ad allarme contatto guasto o manca acqua
}
0.8.zip (17.9 KB)