Progetto Serra Automatica

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