LOCODUINO

Parlons Arduino => Vos projets => Discussion démarrée par: marc le mars 16, 2016, 06:49:27 pm

Titre: conseil pour voie évitement
Posté par: marc le mars 16, 2016, 06:49:27 pm
bonjour à tous

Mon projet avance doucement grâce en partie à votre aide, ce dont je vous en remercie
Mon but est de construire mon réseau de la façon suivante : deux voies de "parade" faisant le tour de mon réseau (en U), avec gare cachée que je gère actuellement grâce à des relais, et une autre voie indépendante des deux précédentes avec 2 boucles de retournement et un ou deux évitements (avec gare, halle marchandise, etc...)
Mon premier programme sous arduino va consister à gérer ce que j'appelle le canton 1 de mon circuit comme représenté sur le schéma que je joins.
Gestion des voies, aiguillages et signaux est au menu, c'est à dire si une train arrive sur la voie 4, contrôler les possibilités que j'ai, c'est à dire si la voie 1 ou la voie 2 ou la voie 3 est occupée, dans quel sens le train étant sur ces cantons circule, pour savoir si les trains se suivent ou s'ils vont à la rencontre l'un de l'autre.
Cela fait 7 entrées à gérer (ils ou autres), 2 moteurs lents et 6 signaux. Les moteurs lents Lemaco et les signaux pouvant, je pense, être gérés de façon électronique à partir de sorties de l'Arduino.

Pensez-vous que l'Arduino Uno est suffisant pour ce genre de projet sinon quelle carte faudrait-il ?

Faut-il traiter les différents choix par des IF... else... ou bien par des SWITCH... CASE...

Y a-t-il une instruction pour sortir d'un IF du genre : if b=3 mettre sortie 1 à 0 sinon sortir du if.

Voilà!

J'ai du pain sur la planche et j'aime ça, alors, comme on dit, ce qui plaît ne coûte pas...

Merci à tous de votre aide

Amitiés

Marc

Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 16, 2016, 08:25:17 pm
Bonjour Marc,

Allez, on y va...
Je vais commencer par la fin.

Il y a des articles pour ce genre de questions sur Locoduino :
Pour les if : http://www.locoduino.org/spip.php?article22 (http://www.locoduino.org/spip.php?article22)
pour les switch : http://www.locoduino.org/spip.php?article23 (http://www.locoduino.org/spip.php?article23)

Pour l'exemple que tu donnes :
if (b==3)
{
    mettre la sortie 1 à 0;
}
Tu noteras le deux signes "=", c'est important.
De même que le décalage de la ligne au milieu (indentation).
Si b=3, tu mets la sortie 1 à 0.
Sinon, on saute ce qu'il y a entre les accolades.

Je te laisse trouver comment on dit, en langage Arduino, "mettre la sortie 1 à 0".
Au cas où, pense à lire l'article http://www.locoduino.org/spip.php?article11 (http://www.locoduino.org/spip.php?article11)

Par ailleurs, pour ton canton 1, tu dessines 3 aiguilles et tu parles de 2 moteurs  ???

La voie 1, tu la parcoure dans quel sens ?
J'imagine que tu rentres dans la boucle par en bas et tu sors par en haut ?

Ton programme marchera certainement avec un UNO. Je ne pense pas utile de prendre la taille au dessus.

Et, dernier conseil, commence par des if {...} else {...}. On verra les switch après.

Bonne lecture.
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 16, 2016, 09:59:50 pm
Merci DDEFF de ta réponse

je pensais que le canton 1 étant une boucle, l'attaquer par la gauche ou la droite n'était pas important, j'ai donc pensé laisser l'aiguillage 1 toujours dans la même position, cela écarte un problème et laisse des entrées/sorties de libre.
Je pense qu'il faut mettre :
digitalWrite(1,LOW);

je pense aussi qu'il est important de déterminer dans quel sens va chaque train?
Donc il faut faire un programme capable de dire quelle voie est occupée et dans quel sens va chaque train, c'est bien cela ?

J'ai prévu dans le circuit secondaire (schéma) de ne faire circuler que deux trains (dans un premier temps, le temps de comprendre la programmation de l'Arduino).

Encore merci pour tout
Amitiés
Marc
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 17, 2016, 09:10:32 am
Bonjour Marc,
Pour info, moi, c'est Denis  ;)

Il est important, effectivement de savoir où sont les trains et dans quel sens ils vont.

Pour la boucle, tu peux la parcourir dans les deux sens. Mais je posais la question pour savoir si l'ILS 5 était au début ou à la fin de la boucle.
Et tu peux aussi le laisser dans une position définie, talonnable.

Comme la boucle est toujours parcourue dans le même sens (sens inverse des aiguilles d'une montre), un seul ILS suffit pour détecter la présence.
Pour la voie 2 et la voie 3, il en faut 2 (un par sens)

Pour les moteurs Lemaco, on ne peut pas les alimenter directement par l'Arduino. Il faut un transistor.
Comme tu vas en avoir plusieurs à mettre, je te propose un ULN2803.
http://www.locoduino.org/spip.php?article10 (http://www.locoduino.org/spip.php?article10)

Tu parles de 7 entrées. Je vois 5 ILS. Tu prévois quoi d'autre ?
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 17, 2016, 02:28:04 pm
Bonjour Denis
J'ai prévu un ILS (ILS1) avant l'aiguillage 3, sur la voie 4
Deux ILS sur la voie 2
Deux ILS sur la voie 3
Et un ILS sur la voie 1
Pour ce qui est de l'électronique, j'ai le logiciel Proteus qui m'aide bien à concevoir les circuits.
C'est plus dans la création de l'algorythme pour gérer informatiquement tous les cas de figure, qui me pose problème.
Bonne journée à toi
Amitiés
Marc
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 17, 2016, 04:12:52 pm
Re bonjour Denis

J'ai la tête à l'ouest car  ce n'est pas des ILS que j'avais prévu mais des détections de courant, c'est-à-dire 4 entrées pour les voies 1 à 4 (0 voie occupée, 1 voie libre) et une diode branchée sur un rail de chaque sous canton pour avoir le sens du déplacement (0 pour Gauche-Droite) et (1 pour Droite-Gauche). C'est à partir de ça qu'il faut chercher tous les cas de figure possible, (ex. Voie 2 libre, train A sur voie 1, allant de gauche à droite). Est-ce la bonne façon d'aborder le problème?

D'avance merci
marc
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 17, 2016, 04:29:46 pm
La démarche me paraît saine.
Et, pour tout dire, je préfère la détection de courant aux ILS.
Au moins, on détecte les wagons isolés, etc.

Par contre, un petit schéma des branchements me siérait ( :) ) bien.
Pour un seul canton, c'est pour voir si j'ai bien compris.

Amitiés
Densi
Titre: 2
Posté par: marc le mars 18, 2016, 03:16:16 pm
Bonjour Denis

Je t'ai mis en pièce jointe le fichier que tu m'as demandé et j'ai commencé à étudier la possibilité d'utilisé des multiplexeurs pour augmenter le nombre d'entrées/sorties de l'arduino.
Je pense qu'il me faut 5 entrées (1 par voie et 1 pour le sens) ainsi que 9 sorties pour tous les cas de figure possibles :
1 - Toutes les voies sont libres
2 - voie 4 occupée
3 - voie 3 occupée
4 - voie 2 occupée
5 - voie 1 occupée
6 - voies 3 et 4 occupées
7 - voies 2 et 3 occupées
8 - voies 1 et 4 occupées
9 - Voies 2 et 4 occupées

Qu'en penses-tu?

Amitiés
Marc
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 18, 2016, 06:12:08 pm
Bonjour Marc,

Il n'est pas nécessaire d'utiliser des multiplexeurs. C'est le programme qui va gérer les cas.

En entrée :

A0   : Voie 1 occupée
A1   : Voie 2 occupée
A2   : Voie 3 occupée
A3   : Voie 4 occupée

En sortie :

D2   : Signal 1 (voie 1)
D3   : Signal 2 (voie 2 gauche)
D4   : Signal 3 (voie 2 droite)
D5   : Signal 4 (voie 3 gauche)
D6   : Signal 5 (voie 3 droite)
D7   : Signal 6 (voie 4 gauche)
Les signaux sont rouge ou verts (deux feux)

On ne tient pas compte du sens de la voie 1 puisque c'est toujours le même.
D8   : Sens voie 2
D9   : Sens voie 3
D10 : Sens voie 4

D11  : Aiguille 2 déviée
D12 : Aiguille 3 déviée

Tu vois que tout tient sans extension.  :D

J'imagine la logique suivante :


1°) Un seul train :

V4<-, V3<-, V1, V3->, V4->

2°) Deux trains :

1er train : V4<-, V3<-, V1, V2 et s'arrête

2ème train : V4<-, V3<-, V1, V3 et s'arrête.

Puis le 1er train ressort : V2->, V4->
Comme il s'est arrêté, on a l'impression qu'il a été loin.

Puis le 2ème train ressort : V3->, V4->

Qu'en penses-tu ?

Amitiés
Denis

A part ça, la pièce jointe n'a pas marché... :(
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 18, 2016, 07:10:15 pm
Encore une fois merci Denis

Je digère ce que tu m'as envoyé (je n'ai pas encore tes connaissances pour comprendre tout cela d'un coup). J'essaie de faire le montage avec Proteus et je te tiens bien sûr au courant.

Et encore merci de t'occuper de mon problème et qui sais, peut-être un jour à charge de revanche.

Très cordialement

Marc
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 19, 2016, 05:31:09 am
Bonjour Marc,

Je m'étais trompé hier. J'ai rectifié mon précédent post qui est bon maintenant.

Mais j'ai une remarque : Protéus, c'est pour simuler des circuits électroniques (je me trompe ?).
Je ne vois pas comment Arduino peut être modélisé.

Amicalement
Denis
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 19, 2016, 11:35:40 am
Bonjour Denis
Je ne me sers que de la simulation de la carte, rien d'autre; J'écris le programme avec Arduino, l'enregistre en hexa et copie le tout dans la carte Arduino. Quelques composants branchés au bon endroit (led, bouton, relai) et on lance tout ca. Proteus va faire réagir l'arduino et les composants périphériques en fonction du programme.

Je t'envoie un petit fichier (si tu peux l'ouvrir) montrant la création d'un projet.

Amitiés

Marc
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 19, 2016, 11:46:25 am
J'ai bien eu ton fichier (qui est faux, puisque tu n'as pas d'ILS  :D )

Mais c'est à ta phrase :
et une diode branchée sur un rail de chaque sous canton pour avoir le sens du déplacement (0 pour Gauche-Droite) et (1 pour Droite-Gauche)que je faisais allusion. Je ne la comprends pas.
Et c'est là que je demandais un schéma.

Donc tu intégrerais une "copie" d'Arduino dans Protéus, avec simulation des composants annexes et tu testerais ainsi le fonctionnement global du circuit ?

Ce serait assez original.
Et ça donne des résultats ? Parce que c'est une piste très intéressante.
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 19, 2016, 12:09:46 pm
Re bonjour

Non bien sûr la diode ne sert à rien,  elle est restée d'un ancien test...

Je peux t'assurer que cela fonctionne parfaitement Je me suis payé le grand livre d'Arduino et reproduit quelques exemples du bouquin avec proteus et arduino. Cela fonctionne sans problème
Cordialement
Bon WE

Marc
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 24, 2016, 03:33:06 pm
bONJOUR Denis

J'avance, j'avance, tout doucement.
 Je joins un pdf du montage que je suis en train de faire avec Proteus et le programme qui va avec.
Je te laisse juger, si tu en as le temps.
Je vais chercher la carte Arduino Uno car elle vient d'arriver au point relais.
Tu m'auras beaucoup aidé dans ma démarche et je t'en remercie.

Ce que j'ai du mal à faire tout de suite, c'est à mettre au point les différents de figure et de les convertir en programme.

Je pense avoir un petit manque de logique...
Je te transmets également le programme incomplet qui fait fonctionner (ou pas) le montage dans PROTEUS.

Cordialement

Marc

Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 24, 2016, 08:52:47 pm
Bonjour Marc,

C'est un bon début.
Bien sûr, un certain nombre de choses à corriger...  ;)

On va commencer par le schéma électronique :

Très clair, très lisible, un vrai plaisir à lire. Mais...

Commençons par les entrées.

1°) Tu as choisi la sécurité SNCF : voie libre à HIGH et occupée à LOW. Parfait.
Si un fil se coupe, on a une occupation par défaut, gage d'une sécurité maximale.
Bravo.
Je ne sais pas s'il faut des 10k mais ça me paraît correct.

Puis les sorties

2°) Pour les 6 signaux et le CD4009 (ou CD40106), il y a un problème : tu n'as pas mis de résistance 220 Ω pour chaque LED.

3°) Commande des aiguilles.
Les 2 aiguilles sont soit toutes les 2 directes, soit toutes les 2 déviées.
Donc, l'inverseur du CD4009 ne sert pas.
En plus, un CD4009 contient 6 inverseurs et tu as 6 signaux : tu en a juste besoin d'un seul, pile poil !

4°) Reste le plus important : c'est l'Arduino qui décide du sens de circulation des trains sur une voie donnée.
Donc, tu dois avoir un relais inverseur double pour chaque voie, de V1 à V4.

Toi, sur ton alimentation, tu décides du sens de déplacement (marche avant/arrière) par un inverseur général.
Mais comme tu vas sur une boucle de retournement, ton train rentre en marche avant et de droite à gauche et ressort toujours en marche avant, mais de gauche à droite !

Entre les  deux, l'Arduino devra avoir inversé les rails des voies 1 à 4.

D'où les 4 doubles inverseurs indépendants que je te conseille d'installer.

Dans ton schéma, ce ne sont donc pas des boutons (et, donc, des entrées), mais des bobines de relais et, donc des sorties !

5°) Je ne comprends pas à quoi servent les jumpers sur la droite.
Ce seraient des boutons pour étudier les 4 cas d'occupation possibles des voies 1 à 4 ?

On parlera du programme lui-même dans un deuxième temps.

Bon courage !!  ;D

Amicalement
Denis
Titre: Re : conseil pour voie évitement
Posté par: marc le mars 24, 2016, 10:32:13 pm
Bonsoir denis

Pour les 6 signaux et le CD4009 (ou CD40106), il y a un problème : tu n'as pas mis de résistance 220 Ω pour chaque LED.

Proteus fonctionne sans avoir besoin de résistances pour les LED, donc simplification du schéma, sachant bien sûr qu'au final il en faudra.

3°) Commande des aiguilles.
Les 2 aiguilles sont soit toutes les 2 directes, soit toutes les 2 déviées.
Donc, l'inverseur du CD4009 ne sert pas.


J'ai pensé qu'automatiquement les relais sont dans des positions opposées et qu'en en commandant qu'un seul, il était plus simple d'inverser le second avec une seule commande pour les 2.

4°) Reste le plus important : c'est l'Arduino qui décide du sens de circulation des trains sur une voie donnée.
Donc, tu dois avoir un relais inverseur double pour chaque voie, de V1 à V4.

Je ne comprends pas quand tu me dis que c'est l'arduino qui décide du sens de circulation. Dans mon montage de détection de courant pour chaque voie, j'ai incorporé une sortie m'indiquant le sens. J'ai donc en sortie du détection : 0 pour l'occupation et 1 pour libre, 0 pour la direction Gauche-droite et 1 pour la direction droite-gauche.

Toi, sur ton alimentation, tu décides du sens de déplacement (marche avant/arrière) par un inverseur général.
Mais comme tu vas sur une boucle de retournement, ton train rentre en marche avant et de droite à gauche et ressort toujours en marche avant, mais de gauche à droite !

Entre les  deux, l'Arduino devra avoir inversé les rails des voies 1 à 4.
D'où les 4 doubles inverseurs indépendants que je te conseille d'installer.

Là j'avoue ne pas bien comprendre ta réponse.

5°) Je ne comprends pas à quoi servent les jumpers sur la droite.

C'est pour simuler les contacts restant  à ma disposition sur les moteurs lents Lemaco, je pensais m'en servir pour envoyer une information à l'Arduino mais, vive la jeunesse, je ne sais plus pourquoi faire...

Pour la programmation, je dois avoir les neurones qui sautent car j'ai du mal à voir quelle est la meilleure façon (donc la plus simple) pour gérer tout cela.

1re possibilité : Quand le train A arrive par la voie 4, faut-il avant de le faire avancer, connaitre l'état des différents cantons et le sens du train étant dessus ?
2me possibilité : quand le train A arrive par la voie 4, faut-il vérifier au fur et à mesure de l'avancement du train. Par exemple, arrivée à l'entrée de l'aiguille 3, vérifier si la voie 2 ou 3 est libre. SI la voie 2 est libre, le train A se déplace dessus. Arrivé sur la voie 2, vérifier si la voie 1 est libre, etc...

Sans doute y-a-t il d'autres cas de figure mais à l'heure actuelle, je cherche, je cherche mais j'ai du mal à visualiser le résultat sans exemple concret.

Mais en tout cas, tous ces problèmes me passionnent et m'aident à passer un cap difficile, en retraite depuis 6 mois, je viens d'apprendre qu'après un cancer de la prostate, normalement guéri, je me tape un cancer du poumon. Vive la jeunesse. C'est pourquoi je m'accroche à mes problèmes de petit train pour me changer les idées et ne pas trop penser à ce qui m'attend. Je ne fais pas dans les pleureuses mais c'est pour t'expliquer mon acharnement à comprendre et à réaliser mon rêve.
Bonne soirée à toi

Cordialement

Marc






Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 27, 2016, 03:24:19 pm
Bonjour Marc,

Bien triste d'apprendre ces nouvelles sur ton état de santé...
La seule chose que je puisse dire, c'est que si tu veux trouver une activité qui t'occupe bien l'esprit, en choisissant l'Arduino, tu as frappé à la bonne porte !

Citer
3°) Commande des aiguilles.
Les 2 aiguilles sont soit toutes les 2 directes, soit toutes les 2 déviées.
Donc, l'inverseur du CD4009 ne sert pas.

J'ai pensé qu'automatiquement les relais sont dans des positions opposées et qu'en en commandant qu'un seul, il était plus simple d'inverser le second avec une seule commande pour les 2

Les deux Lemaco doivent être dans la même position et tu utilises 2 entrées (reliées simplement entre elles) et 2 sorties distinctes, une pour chaque moteur.
Plus simple que l'ULN2803, ça n'existe pas  :)

Citer
4°) Reste le plus important : c'est l'Arduino qui décide du sens de circulation des trains sur une voie donnée.
Donc, tu dois avoir un relais inverseur double pour chaque voie, de V1 à V4.

Je ne comprends pas quand tu me dis que c'est l'arduino qui décide du sens de circulation. Dans mon montage de détection de courant pour chaque voie, j'ai incorporé une sortie m'indiquant le sens. J'ai donc en sortie du détection : 0 pour l'occupation et 1 pour libre, 0 pour la direction Gauche-droite et 1 pour la direction droite-gauche.

Toi, sur ton alimentation, tu décides du sens de déplacement (marche avant/arrière) par un inverseur général.
Mais comme tu vas sur une boucle de retournement, ton train rentre en marche avant et de droite à gauche et ressort toujours en marche avant, mais de gauche à droite !

Entre les  deux, l'Arduino devra avoir inversé les rails des voies 1 à 4.
D'où les 4 doubles inverseurs indépendants que je te conseille d'installer.
Là j'avoue ne pas bien comprendre ta réponse.

Au niveau de la source traction, tu as un inverseur et grâce à lui, tu décides d'aller en marche avant ou en marche arrière.
Supposons qu'il n'y ait qu'un train et qu'un canton : c'est avec cet inverseur que tu changes de sens.
C'est toi qui décides du sens (marche avant/marche arrière).

Maintenant, il y a une autre façon de se déplacer : de gauche à droite ou de droite à gauche. Ce n'est pas la même chose.
Tu peux aller de gauche à droite en marche avant ou de gauche à droite en marche arrière, etc... Il y a 4 cas.

Le sens de déplacement (gauche/droite) sur un canton donné, c'est l'Arduino qui va le gérer, au niveau de chaque canton.
Et toi, tu gardes le choix (avant/arrière). Il faut les deux.

Donc, dans chaque canton, tu as un relai avec deux inverseurs (comme le Lemaco) qui sont reliés d'un côté au niveau des rails du canton (chaque relai inverseur gère 2 rails) et de l'autre reliés les uns aux autres à la source de traction. C'est le "commun traction".

Attention, j'emploie la dénomination officielle : voie 1 = canton 1, voie 2 = canton 2, ... voie 4 = canton 4.
Ce que tu appelles canton 1, on peut l'appeler zone 1 pour éviter la confusion.  ;)

On verra la programmation plus tard.
A mon avis, dans un premier temps, il faut gérer tous les cas possibles en arrivant par la droite sur le canton 4. C'est la façon de raisonner la plus simple.
On compliquera plus tard. Chaque chose en son temps.  :D

Amicalement
Denis
Titre: )
Posté par: marc le mars 27, 2016, 10:27:48 pm
bonsoir Denis
une petite question
Au niveau de la fonction if, peut-on imbriquer les else et les else if

Exemple :

if ..........
   if ..........
   else
   .......
else if ........

Me suis-je bien fait comprendre ?

Amitiés

Marc
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mars 27, 2016, 10:32:23 pm
Bien sûr, mais il faut bien aligner les accolades, pour ne pas que ça se croise.
Titre: Re : conseil pour voie évitement
Posté par: marc le avril 29, 2016, 10:25:13 pm
Re bonsoir Denis

J'ai continué à chercher sans grands résultats.
Dans un te tes mails, tu m'as fait un algorythme du genre :1 train : V4<,V3<,V1,V3>,V4>
etc..
Mais la première chose à faire lorsqu'un train arrive avec l'évitement, n'est-il pas de savoir qu'elles voies sont libres ou occupées et ensuite déterminer l'algorythme ??

Qu'en penses-tu?
Amitiés
Marc
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le avril 30, 2016, 08:13:18 am
Bonjour Marc,

Content de te revoir... ;)
Je ne serais pas là aujourd'hui, mais je m'occupe de toi ce soir.
Oui, il faut tester tous les cantons.

En attendant ce soir, peux-tu me donner ton câblage électrique modifié, avec les relais d'inversion de chaque canton commandés par l'Arduino ?

Amicalement
Denis
Titre: Re : conseil pour voie évitement
Posté par: DDEFF le mai 01, 2016, 10:14:42 am
Bonjour Marc,
Quand on fait de l'Arduino, on est obligé de réfléchir à la fois au côté électronique (d'où ma question d'hier) et au programme.

Je vais démarrer le programme.

Commençons par un cas simple : un  seul train sur le réseau.

Comme la partie gérée par l'Arduino n'est qu'une partie de ton réseau, on supposera qu'au départ le train est ailleurs et que les 4 cantons sont vides.
Par ailleurs, les 3 inverseurs de sens (un par canton 2, 3, 4) sont au repos.
On va décider que quand le train va de gauche à droite, l'inverseur est au repos.

Le déclenchement du processus est l'occupation du canton à droite du canton 4 (ou l'aiguille qui y mène).

Comme il n'y a aucun train dans l'un des cantons de 1 à 4, c'est forcément qu'on vient par la droite.

Donc, il faut mettre l'inverseur du canton 4 à HIGH.

Le train peut alors circuler sur le canton 4.

Par défaut, l'aiguille 3 est tout droit.
Comme le canton 4 est occupé, on va mettre l'aiguille 3 à tout droit (ce qui ne sert rien ici) et mettre l'inverseur du canton 3 à HIGH.

Quand le canton 3 sera occupé, on met l'aiguille 2 à tout droit (ce qui ne servira sûrement à rien ici) et on met l'aiguille 1 à tout droit (c'est, j'imagine, vers le bas de ta boucle, dans le sens des aiguilles d'une montre).

On attend que le train soit uniquement sur le canton 1 pour qu'on puisse bouger l'aiguille 1.

On met alors l'aiguille 1 à déviée.

Dans ce premier exercice, on laisse l'aiguille 2 à tout droit.

On met l'inverseur du canton 3 à LOW pour aller de gauche à droite.
Le train avance sur le canton 3.

On met l'inverseur du canton 4 à LOW et le train peut sortir du circuit.

Pour ton schéma électrique, pour l'ULN2803, sur 2 on a la commande du Lemaco aiguille 2 et sur 3 la commande du Lemaco aiguille 3.

Dans le programme, j'ai supposé qu'on manipulait l'aiguille 1 via un 3ème Lemaco qui serait en 1 de l'ULN2803.
Mais on peut effectivement avoir une aiguille 1 talonnable laissée en position tout droit. Et pas de 3ème Lemaco.

Sur l'ULN2803, en 4, on a l'inverseur canton 2, en 5 l'inverseur canton 3 et en 6 l'inverseur canton 4.

Amicalement
Denis