Uscire del ciclo if con delay

if ( buttonState1 == LOW)  {
           digitalWrite(relechiude, LOW);
             digitalWrite(releapri, LOW);
          delay(100); 
digitalWrite(relechiude, LOW);
    digitalWrite(releapri, HIGH);}

       if (fotocellulaStatus <= 40)
   {
   
digitalWrite(relechiude, LOW);
delay(5000);
    digitalWrite(releapri, HIGH);
   }
   if (microState == HIGH) {
   if (fotocellulaStatus >= 40)
   
   {
 digitalWrite(relechiude, HIGH);
 
}
     if (conttatoStatus <= 1005)
  
 { digitalWrite(releapri, LOW);
  }  }
  
     

      if ((microState == LOW)&& (conttatoStatus >= 1005))
   {

        digitalWrite(relechiude, LOW);



   

   
   }

salve ho un problema in questo sketch sto usando più di una IF funziona tutto come voglio l'unico problema che if con il delay(5000);, funziona per 5 secondi anche se in pratico esco del if con i sensori.
vorrai che anche se non passano i 5 secondi si ferma if e passa al if richiesta

Delay è bloccante, deve riprogettare il codice utilizzando la funzione millis, se cerchi sul forum troverai mille mila informazioni su come usarla. Inoltre la trovi nel reference

>ouassour: Come ti è stato detto devi riprogettare il tuo codice e, per farlo, devi studiarti come si usa la millis(), prima QUI, poi QUI ed infine leggi anche QUI e QUI ... vedrai che ti sarà tutto più chiaro.

Guglielmo