Progetto Serra Automatica

cicciozuc:
è come convertire il tuo schema in una logica

Non è diverso da quanto fatto finora, lo stato 99 non lo avevo rappresentato (ho modificato il post accorpando la logica, non servivano così tanti stati)

Mototore in arrivo o partito da sinistra/destra come posso dichiararlo??

Non sono cose da dichiarare, è il commento che dice cosa significa ogni situazione.

E come dicevo non è diverso dal solito, si parte dalla situazione:

else if(s == 1)
{
}

Si aggiungono gli eventi:

else if(s == 1)
{
    if(millis() - t >= 3000  &&  fcS_Chiuso)
    {
    }
    else if(millis() - t >= 60000  &&  fcD_Aperto)
    {
    }
    else if(!MotoreAvanti  &&  !MotoreIndietro)
    {
    }
}

Si aggiungono le azioni:

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;
    }
}