Progetto Serra Automatica

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...