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.