Il y a d'autres questions que tu dois te poser qui vont probablement changer ton schéma. Quelles sont tes entrées ? Je n'en vois pas sur ton schéma
Au niveau des entrées, j'en aurai sur les modules de la gare, surement, pour commander mes aiguilles . Actuellement je les commande avec des moteurs conrad avec des fins de course, je pense mettre un petit relai 2RT pour inverser la polarité du courant ou, si ça ne va pas, des servos comme l'explique jean luc sur son site. Donc une entrée par aiguille. Je n'ai pas précisé: sur mon dessin, les ULN2803 laissent libre les broches RX et TX, les broches A4 et A5 (i2c), et les broches A0,A1,A2 et A3 sont basculables en entrées ou sorties par des straps.
Sur le module maitre, il me faut un bouton pour incrementer une liste de programme et un bouton de validation.
J'ai vu aussi un PN dans le lot c'est déjà bien comme petit truc : détection, fermeture des barrières, lumières clignotants et son
Je pense juste mettre un bouton qui ferme ou ouvre les barrières car, sinon, la détection se retrouve sur les modules voisins et c'est encore des fils suplémentaires.
Un arduino par module est bien vu que cela permet de laisser le moins de fils entre les modules mais il faut synchroniser tout cela, quel protocole ?
Pour la synchro (pas testée), j'ai imaginé créer des créneaux sur une sortie du maitre et les envoyer sur une entrée des esclaves via un bus.
J'aurai dans le programme maitre :
une variable incrementée par le bouton
--->un switch(ma variable)
case(1)--->digitalWrite(sortie x, HIGH) pendant, disons 50ms
case(2)--->(digitalWrite(sortie x, HIGH) pendant, disons 50ms)2 fois
etc...
Dans chaque esclave:
une variable s'incrémentant sur l'entrée du bus
--->un switch(ma variable)
case(1)--->programme 1
case(2)--->programme 2
etc...
Tout ça a tester.
Reste le grave problème de delay() à régler.
A ce propos, est-ce que c'est la seule fonction bloquante?