Per adesso il mio problema sono proprio le parentesi graffe, che se chiuse in maniera errata le istruzioni non corrispondono come dovrebbero...
Per esempio diciamo che i guasti funzionano tutti tranne il finecorsa destro che se premuto segnala subito l'errore della situazione == 2 senza attendere 3 secondi e non eseguendo la variabile errore = 1 rimane sempre tutto acceso.. Quindi in base a come vengono chiuse le parentesi le istruzioni si verificano oppure non succede nulla...
Fatte tante prove al momento questo rimane il mio problema... Sapete individuare cosa sbaglio???
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;
}
if (millis() - t >= 30000 & fcS_Aperto) {
HC12.print(" Guasto: ");
HC12.println("Fine Corsa Sinistrol non chiude");
s = 99;
}
}
else if (s == 2) {
if (millis() - t >= 3000 && fcD_Chiuso) {
HC12.print(" Guasto: ");
HC12.println("Fine Corsa Destro non apre");
s = 99;
}
if (millis() - t >= 30000 && fcD_Aperto) {
HC12.print(" Guasto: ");
HC12.println("Fine Corsa Destro non chiude");
s = 99;
}
}
else if (!MotoreAvanti && !MotoreIndietro) {
s = 0;
}
else if (s == 99) {
errore = 1;
}
}
Vi ripeto come sempre che appena carico il codice all'interno dei tag </>. si aggiungono molti spazi e devo sempre correggere prima di postare