Adesso va molto meglio, dopo parecchie prove tutto funziona come da codice...
Rileggendo il post #80 come tu hai detto i controlli dei motori andavano inseriti nello stato 1 e 2..
Questo adesso penso sia corretto
if (fcS_Chiuso && fcD_Chiuso) {
HC12.println("guasto entrambi finecorsa chiusi");
s = 99;
}
if (MotoreAvanti && MotoreIndietro) {
HC12.println("guasto doppio azionamento");
s = 99;
}
else if (s == 0) {
if (MotoreAvanti) {
t = millis();
s = 1;
}
if (MotoreIndietro) {
t = millis();
s = 2;
}
}
else if (s == 1) {
if (millis() - t >= 3000 && fcS_Chiuso) {
HC12.print(" Guasto: ");
HC12.println("Fine Corsa Sinistro non apre");
s = 99;
}
else if (millis() - t >= 60000 & fcD_Aperto) {
HC12.print(" Guasto: ");
HC12.println("Fine Corsa Destro non chiude");
s = 99;
}
else if (!MotoreAvanti && !MotoreIndietro) {
s = 0;
}
}
else if (s == 2) {
if (millis() - t >= 3000 && fcD_Chiuso) {
HC12.print(" Guasto: ");
HC12.println("Fine Corsa Destro non apre");
s = 99;
}
else if (millis() - t >= 60000 && fcS_Aperto) {
HC12.print(" Guasto: ");
HC12.println("Fine Corsa Sinistro non chiude");
s = 99;
}
else if (!MotoreAvanti && !MotoreIndietro) {
s = 0;
}
}
else if (s == 99) {
errore = 1;
}
}
Grazie per l'aiuto..
Karma inviato...