Auteur Sujet: Va et vient automatique avec 2 trains analogique et 3 gares  (Lu 9735 fois)

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Va et vient automatique avec 2 trains analogique et 3 gares
« le: octobre 08, 2022, 07:22:13 pm »
Bonjour à tous,

Je suis débutant en arduino et j'ai en projet de réaliser un va et vient automatique avec 2 trains et 3 gares le plus simplement possible géré par une carte arduino Uno sur réseau analogique , la dérive de voie se fait via un aiguillage à solénoïdes.
au niveau de chaque gare il y aura un capteur pour la détection du train.
Avec mon niveau de débutant j'ai réussi à faire un simple va et vient sur voie unique , ensuite j'ai durci la chose avec 3 gares et un seul train j'ai galéré mais cela fonctionne maintenant.  :D
Aujourd'hui je voudrais compliquer la chose avec 2 trains et 3 gares mais je n'arrive pas à trouver la solution des conditions de départ. Je souhaite que le train A part le 1er vers la gare 3 après un temps donné il revient en gare 1 puis après un temps donné le train B part de la gare 2 vers la gare 3 il s'arrêt X temps puis repart vers la gare 2 et le cycle reprends en boucle.
Je mets un dessin de mon projet.
Donc : 3 gares , 2 trains , 1 aiguillages à solénoïdes et 3 capteurs.
Si une bonne âme souhaiterais me sortir une solution la plus simple possible de son chapeau j'en serais reconnaissant.
Merci
 
« Modifié: octobre 08, 2022, 07:24:19 pm par guillaumevlv62 »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2902
  • 100% Arduino et N
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #1 le: octobre 08, 2022, 07:32:49 pm »
Je vous conseille de lire des articles sur les machines à état comme par exemple;
https://forum.arduino.cc/t/programmation-automate-fini-machine-a-etat/452532
Et surtout :
https://www.locoduino.org/spip.php?article25

« Modifié: octobre 08, 2022, 07:42:11 pm par Dominique »
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #2 le: octobre 08, 2022, 08:57:13 pm »
Bonjour,

déjà bravo d'avoir réussi en tant que débutant un va-et-vient 3 gares, un train (en analogique ?).

Les va-et-vient décrits sur le site font appel à la bibliothèque DCCpp mais leur structure peut vous inspirer.

https://www.locoduino.org/spip.php?article232

https://www.locoduino.org/spip.php?article321

https://www.locoduino.org/spip.php?article322

Bon courage
« Modifié: octobre 09, 2022, 07:27:09 am par Dominique »
Cordialement

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #3 le: octobre 09, 2022, 10:35:00 pm »
... 2 trains et 3 gares ...

Bonsoir,
en fait, est-ce que vous ne pouvez pas dupliquer votre va et vient pour un train pour avoir chacun des trains en va et vient.
Ensuite il suffirait de conditionner le démarrage du deuxième train au retour du premier. Et réciproquement.
Cordialement

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #4 le: octobre 10, 2022, 05:58:00 pm »
Bonjour msport,

Je vais voir si j'arrive à développer quelque chose avec cette idée de dupliquer le va et vient.
Ensuite vient l'histoire de comment faire démarrer 1 seul train ??? Car en début de cycle la gare 1 et la gare 2 seront occupés toute les 2 par un train !!!! j'étais partir avec cette idée d'écrire : if ((Capteur1==LOW)&&(Capteur3==HIGH)){  Mais je doute fort que cette façon de faire soit fiable car ensuite j'aurais un if ((Capteur2==LOW)&&(Capteur3==HIGH)){
Pas simple tout ça quand on commence à marcher seul  :-\

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #5 le: octobre 10, 2022, 10:31:47 pm »
C'est pour cela que la machine à état a été inventée. Au bout du compte ce n'est pas si compliqué :

Je vous propose de numéroter les états successifs et de conditionner le passage à l'état suivant (+1) à la survenue de l'évènement suivant :
0 on attend
1 on démarre (BP) -> A roule avant
2 Capteur3 -> A attend
3 fin attente ->   A roule AR
4 Capteur1 -> A attend
5 fin attente ->   B roule AV
6 Capteur3 -> B attend
7 fin attente ->   B roule AR
8 Capteur2 -> B attend
9 fin attente ->   retour état 1

Utilisez un BP pour faire ON/OFF de votre automate.
Vous saurez certainement piloter l'aiguillage.
« Modifié: octobre 11, 2022, 10:19:39 am par msport »
Cordialement

chris_bzg

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 311
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #6 le: octobre 11, 2022, 09:51:14 am »
Bonjour à tous,
...
Aujourd'hui je voudrais compliquer la chose avec 2 trains et 3 gares mais je n'arrive pas à trouver la solution des conditions de départ. Je souhaite que le train A part le 1er vers la gare 3 après un temps donné il revient en gare 1 puis après un temps donné le train B part de la gare 2 vers la gare 3 il s'arrêt X temps puis repart vers la gare 2 et le cycle reprends en boucle.
...

Ce problème peut être résolu avec un programme qui exécute les actions les unes après les autres (un tel programme s'appelle un séquenceur, comme par exemple un feu rouge de carrefour).
Il vous faut un relais 2RT pour inverser le sens du courant sur la voie, et deux relais 1RT pour alimenter les zones d'arrêt des gares 1 et 2, mais pas en même temps. La gare 3 peut être gérée par une simple diode afin de créer un garage, la diode alimentant ce garage que dans le sens départ du garage.
Voici les actions du programme :
Polariser la voie dans le sens départ.
Alimenter la section d'arrêt 1 -> le train 1 part vers 3. Lorsqu'il arrive en 3, la diode fait qu'il s'arrêtera.
Attendre.
Polariser en inverse le circuit : la diode alimente la section 3 et le train repart en sens inverse. Positionner le relais pour que la voie 1 ne soit pas alimentée. Le train s'arrêtera dessus.
Attendre.
Même chose pour le train 2, après avoir positionné l'aiguille (il suffit d'alimenter le solénoïde avec un ou deux relais, suivant qu'il y a ou non des contacts de fin de course : j'ai décrit cela dans une fiche pratique Loco-Revue). Lorsque le train est revenu en 2, remettre l'aiguille en position pour le train 1.
Comme vous le voyez, il n'y a pas besoin de capteurs mais vous pouvez aussi les garder pour bien contrôler le processus.
En espérant que cela vous aura aidé...  ;)

Rob1

  • Jr. Member
  • **
  • Messages: 62
    • Voir le profil
    • Mon projet réseau
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #7 le: octobre 11, 2022, 10:34:17 am »
Bonjour à tous
En complément du post de msport je voudrait préciser que dans le mode des automatismes
on utilise beaucoup, mais pas exclusivement, le Grafcet (Graphe Fonctionnel de Commande des Étapes et Transitions)
pour aborder la programmation des machines dont le fonctionnement est effectivement une succession d'états cadencée par
le franchissement de transitions temporelles ou conditionnelles.

Le Web propose diverses initiation au Grafcet j'invite les non initiés à s'y reporter car c'est souvent ce qui leur manque pour concevoir leurs programmes.
Dans le monde industriel ont utilise des automates programmables pour la commande des machines,
ceux-ci dispose d'un langage de programmation bénéficiant d'instructions dédiées au Grafcet.
Dans le monde Arduino on parle de machines à états et de manière très pratique l'instruction Switch nous facilite la programmation.

Le lien ci-dessous est un début de tuto que j'avais commencé et qui mériterait d'être terminé.
https://www.rob-train.fr/500-Stages/0-Doc/Stages/Ard/Init/Rob_Form_PRG_LeGrafcet_20220506.pdf

A+ Roland

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #8 le: octobre 11, 2022, 05:11:15 pm »
Merci à tous pour vos retours je vais voir pour faire un mix de tout cela et j'espère en sortir quelque chose.
Entre temps si d'autre idée vous viennent je suis preneur.
Salutations

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #9 le: octobre 12, 2022, 11:07:13 pm »
Bonsoir,

postez votre code 1 train et 3 gares, il nous donnera peut-être des idées ...
Cordialement

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #10 le: octobre 13, 2022, 05:26:24 pm »
Bonjour msport,

Ci-joint le code pour 1 train et 3 gares.
Attention il y a surement de mal façon mais j'ai commencé à me mettre à l'arduino il y a 1 mois 1/2 et j'ai bricolé avec les divers chose que j'ai trouvé sur le net.
Comment je ne sais pas mais le code fonctionne. :-\
J'espère ne pas choquer trop de monde  ::)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 916
  • HO avec DCC++
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #11 le: octobre 13, 2022, 06:37:31 pm »
B'hein c'est bien pour quelqu'un qui dit débuter. Bon, il faut toujours trouver un petit quelque chose à dire pour progresser alors moi je dirais qu'il n'est ps nécessaire d'avoir les deux fonctions

void Aiguillage1() {
  digitalWrite(8, LOW);
  delay(200);
  digitalWrite(8, HIGH);
}

void Aiguillage2() {
  digitalWrite(9, LOW);
  delay(200);
  digitalWrite(9, HIGH);
}

Il faut remplacer par une seule fonction que l'on peut appeler Aiguillage() avec en paramètre le n° de la broche :

void Aiguillage(const int AigG) {
  digitalWrite(AigG, LOW);
  delay(200);
  digitalWrite(AigG, HIGH);
}
}


Les appels de cette fonction ligne 78 et 91 deviennent alors :

Aiguillage(AigG1);  au lieu de : Aiguillage1();
Aiguillage(AigG2);  au lieu de : Aiguillage2();
C'est en forgeant qu'on devient forgeron.

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #12 le: octobre 13, 2022, 08:34:21 pm »
Bonsoir bobyAndCo,

Merci pour cette petite astuce j'aime bien aussi cette façon de faire.
je garde cela bien au chaud   ;)
Mais mon problème aujourd'hui est de gérer 2 trains avec 3 gares en va et vient et la je fais face à un mur je galère mais je ne baisse pas les bras  8)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 916
  • HO avec DCC++
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #13 le: octobre 13, 2022, 08:50:43 pm »
J'ai survolé l'ensemble de ce fil, mais il me semble que de nombreuses contributions donne la méthode : La machine d'état. Il s'agit ici avant tout de logique. La programmation résoudra sans aucune difficulté le sujet quand le graphe logique sera écrit.


msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #14 le: octobre 13, 2022, 11:11:26 pm »
Sans garantie et ni vérifié ni testé, un programme modifié.
Probablement pas un exemple à suivre mais qui permet de jouer avec les variables logiques.
Attention à ne pas se taper sur les doigts en forgeant.

J'oubliais : pour suivre l'évolution d'un programme, rien de tel que de le barder de Serial.println
« Modifié: octobre 13, 2022, 11:16:34 pm par msport »
Cordialement