Alarme multi-zone avec affichage lcd

Tu peux écrire la lecture des capteurs comme ceci

etatsensor1 = etatsensor1==HIGH? etatsensor1 : digitalRead(sensorPin1);

Cette écriture, en plus compacte, est équivalente à

if (etatsensor1==HIGH){
    etatsensor1=etatsensor1;
} else{
   etatsensor1 = digitalRead(sensorPin1);
}

Ceci permet de mémoriser l'état du capteur s'il a été vu à 1 au moins une fois.


Et dans la partie où tu fais `if (digitalRead(ResetPin) == LOW) {` il fat remettre à 0 toutes les variables d'état capteur.
A noter, tu as plusieurs capteurs et plusieurs LEDs et du coup tu est obligé de répéter la même ligne 6 fois pour lire l'état des capteurs, pour éteindre les LEDs, pour remettre à 0 l'état des capteurs.

Le code serait plus simple et plus facile à maintenir si tu utilisais des tableaux pour les capteurs, les LEDs et l'état des capteurs.