Je viens de regarder le nouveau sketch. Déjà il compile, c'est un progrès
Par contre, je l'ai essayé sur un simulateur Tinkercad et il ne fonctionne pas. Dès la mise en route, la LED_BUILTIN s'allume et en envoyant un signal de détection, rien ne se passe.
En modifiant les lignes 26 et 27, on arrive à le faire fonctionner.
Tout d'abord, je suppose que vos détecteurs envoient un signal LOW quand ils détectent puisque vous utilisez INPUT_PULLUP (le signal est HIGH en temps normal).
Ensuite, lorsque vous écrivez
etatZone_A=digitalRead(CaptA);
ce n'est pas orthodoxe. En effet, etatZone_A est un booléen (true ou false) alors que la lecture de l'entrée donnera LOW ou HIGH. Pour la beauté des choses et la compréhension par d'autres programmeurs, il vaut mieux écrire :
if(digitalRead(CaptA)==LOW) {
etatZone_A = true;
}
else etatZone_A = false;
Donc, en remplaçant les lignes 26 et 27 par ce que j'ai écrit, votre programme fonctionne sur Tinkercad et est plus facile à comprendre.
Bravo à vous tout de même pour ces changements. Je vous propose maintenant de tester en réel, sur votre réseau, ce fonctionnement pour voir si les zones de détection sont suffisantes pour protéger l'ensemble de la zone située de part et d'autres du PN. Une temporisation est peut-être une bonne idée. Et après cela, il sera temps de passer aux feux puis aux barrières. On en reparlera...