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

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #15 le: octobre 14, 2022, 05:37:50 pm »
Merci msport, pour ce code je vais tester cela ce weekend.
Je vous ferais un retour sur ce projet car je souhaite encore faire evoluer la chose ( commander un servo pour ouverture de portail mais avant je vais cherche seul ;-) )
Merci aussi autre pour tout les conseils cela m'aide beaucoup à avancer.

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 #16 le: octobre 14, 2022, 05:52:07 pm »
Bonsoir,
vous devriez poster un schéma électrique de votre montage. J'avais oublié l'inversion de la tension pour inverser le sens de marche. Pour cela utilisez un relais bipolaire en inverseur, commandé par la broche 6.
Cordialement

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #17 le: octobre 14, 2022, 06:58:32 pm »
Bonsoir msport,

Je n'ai pas arrivé à attendre demain...
J'ai chargé votre code dans ma UNO et malheureusement rien ne fonctionne même avec votre modification.
Vraiment désolé.
Je vais voir pour partager un schéma électrique de tout cela !

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 #18 le: octobre 14, 2022, 11:01:42 pm »
Bonsoir,

le programme est loin d'être au point.

Mais déjà, il manque la lecture des capteurs juste au début du loop :

   Capteur1 = digitalRead(capG1);
   Capteur2 = digitalRead(capG2);
   Capteur3 = digitalRead(capG3);
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 #19 le: octobre 15, 2022, 11:24:21 am »
Bonjour,
une version avec des Serial.println qui permettent de suivre le déroulement du programme dans le Moniteur série.
Dans un premier temps on peut tester avec simplement un fil faisant un contact ponctuel entre le GND et les broches 2, 3 et 4 pour simuler la présence des locos.
Cordialement

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #20 le: octobre 15, 2022, 12:19:50 pm »
Bonjour,

J'ai téléchargé le code je vais voir cela rapidement encore merci a vous pour tout ce temps passé
Je vous ferais un retour
Cordialement.

guillaumevlv62

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

J'ai testé le code en volant il y a un semblant de fonctionnement par contre il y a un souci sur la commande de l'aiguillage  :(
Je commande l'aiguillage avec 2 relais ( un relais par solénoïde ) malgré la commande

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

   void Aiguillage2(){  // Aiguillage dévié
   digitalWrite(9, LOW);
   delay(200);
   digitalWrite(9, HIGH);
   }

La sortie 8 ou 9 reste active en continue pourtant on demande bien une impulsion ???
selon vous ou serez le problème ??

Ps : Je n'ai pas encore eu le temps de réaliser le schéma électrique du projet
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 #22 le: octobre 16, 2022, 05:00:42 pm »
Bonjour,
le problème est que les fonctions Aiguillage() sont réactivées à chaque boucle du loop.
Il faut qu'elles soient one shot.
Cordialement

chris_bzg

  • Sr. Member
  • ****
  • Messages: 319
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #23 le: octobre 16, 2022, 06:15:27 pm »
Bonjour Guillaumevlv62,

La bonne méthode est de gérer la direction de l'aiguille (directe ou déviée) : comme il n'y a que deux possibilités, un booléen est parfait, par exemple true si dévié et false sinon. Il faut aussi garder l'état antérieur de l'aiguille et on effectue le mouvement que si la commande donne un état différent de l'état antérieur.
Exemple : au départ (initialisation), l'aiguille A est directe : etat_A = false et old_etat_A = false
On veut manoeuvrer l'aiguille A en appuyant sur un BP ou automatiquement. A l'appui du BP, etat_A devient true (on veut que l'aiguille dévie). Donc etat_A est différent de old_etat_A : dans ce cas, on envoie l'impulsion sur le bon solénoïde.
Une fois que c'est fait, il ne faut pas oublier de faire old_etat_A = etat_A pour mémoriser le nouvel état de l'aiguille. A la boucle suivante de la fonction loop, il n'y aura pas de mouvement, jusqu'à ce qu'on change à nouveau etat_A.
Etc.

Ceci va vous faire réviser les variables booléennes, et les tests de comparaison. Pour le reste, vous y êtes presque.  ;)

Vous pouvez aussi mettre la commande des solénoïdes à l'intérieur d'une routine qui traite de l'appui sur le BP (dans ce cas, l'impulsion n'a lieu que si BP appuyé) :.
if(pinBP == LOW) {
  etat_A = !etat_A;  // l'etat devient son opposé parce que BP appuyé
  if(etat_A) {
  // envoyer impulsion sur solénoïde 1
  }
  if(!etat_A) {
  // envoyer impulsion sur solénoïde 2
  }
}

L'appui sur le BP doit être traité contre les rebonds (une petite temporisation devrait suffire).
« Modifié: octobre 16, 2022, 06:19:29 pm par chris_bzg »

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #24 le: octobre 16, 2022, 07:21:46 pm »
Bonsoir à vous msport et chris_bzg,

@chris_bzg Merci pour ce retour ceci me montre encore une autre façon de faire mais l'aiguillage est géré automatiquement et non avec un Bp  :(

@msport oui je m'en suis rendu compte
Que le problème est que les fonctions Aiguillage() sont réactivées à chaque boucle du loop.
Il faut qu'elles soient one shot.
Il faudrait le prendre de quelle façon ??
Il me reste du budget Cpf je vais m'inscrit à une formation car l'arduino me passionne ;)

Bien Cordialement à vous 2

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #25 le: octobre 16, 2022, 09:00:00 pm »
les fonctions Aiguillage() sont one shot dans la version d. A tester ...
Cordialement

chris_bzg

  • Sr. Member
  • ****
  • Messages: 319
    • Voir le profil
Re : Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #26 le: octobre 17, 2022, 09:44:58 am »
Bonsoir à vous msport et chris_bzg,

@chris_bzg Merci pour ce retour ceci me montre encore une autre façon de faire mais l'aiguillage est géré automatiquement et non avec un Bp  :(

...

Automatiquement ou manuellement, peu importe : le traitement est le même !
Face à un problème, il y a toujours plusieurs façons de faire. Les réponses données vous en montrent quelques unes qu'il faut essayer.

Pour ma part, mon mini-réseau est commandé avec un TCO dessiné sur ordinateur par Processing : je clique sur une aiguille et c'est tout un itinéraire qui se constitue. Je clique sur une voie et j'envoie le courant sens aller ou sens retour.
Les principes ont été expliqués dans : https://www.locoduino.org/spip.php?article226 pour une aiguille motorisée par servomoteur, mais une fois que vous saurez faire avec des relais, il suffit de remplacer.

Pour une formation aux microcontrôleurs (notamment Arduino), je vous recommande celle de l'Ecole Polytechnique Fédérale de Lausanne (EPFL) que vous pouvez suivre sous forme d'un MOOC gratuit (tapez Coursera dans un moteur de recherche et regardez ce qui est proposé) : c'est très sérieux et très accessibles, avec TP à réaliser et diplôme final. Je l'ai faite il y a quelques années.  ;)

savignyexpress

  • Invité
Re : Re : Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #27 le: octobre 17, 2022, 12:54:33 pm »
...Pour une formation aux microcontrôleurs (notamment Arduino), je vous recommande celle de l'Ecole Polytechnique Fédérale de Lausanne (EPFL) que vous pouvez suivre sous forme d'un MOOC gratuit (tapez Coursera dans un moteur de recherche et regardez ce qui est proposé) : c'est très sérieux et très accessibles, avec TP à réaliser et diplôme final. Je l'ai faite il y a quelques années.  ;)

Bonjour à tous,

Je confirme la qualité et l'accessibilité de ce MOOC.

Les enseignants sont excellents. J'ai suivi les cours de systèmes logiques / microprocesseurs donnés par le Prof. J.D. Nicoud durant mes études à l'EPFL il y a quelques décennies et P.Y. Rochat m'a donné de précieux conseils lorsque je me suis lancé dans les microcontrôleurs Atmel en 2009.

Bon début de semaine et meilleures salutations.

guillaumevlv62

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Va et vient automatique avec 2 trains analogique et 3 gares
« Réponse #28 le: octobre 17, 2022, 06:15:50 pm »
Bonsoir msport,

Désolé je n'avais pas vu la version d  :-[
J'ai téléverser le code est Excellente nouvelle cela fonctionne vraiment comme je le souhaite  :)
Je l'ai remis en forme en fonction de mon câblage électrique et en prenant bien soins de ne rien casser et cela marche toujours LoL.
Par contre je souhaite décomposer les actions des relais via un delay entre l'activation d'une gare et le sens de marche ( voir ligne 125 , 133 , 141 et 149 ). J'ai mis un delay (1500); mais il n'ai pas prix en compte.
Seriez vous me dire pourquoi ??
Encore un grand merci à vous pour tout ce temps passé
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 #29 le: octobre 17, 2022, 06:54:48 pm »
Bonsoir,

il faut avoir à l’esprit que le loop est parcouru en permanence en boucle comme son nom l'indique.
Et que les fonctions sont donc réactivées au même rythme.

Au point où vous êtes, il faut comprendre le déroulement du programme (les Serial.print sont là pour cela) et expérimenter.
Testez le UNO débranché mais connecté en USB avec simplement un fil faisant un contact ponctuel entre le GND et les broches 2, 3 et 4 pour simuler la présence des locos.

Manifestement, la formation proposée répond à votre attente, reste à la suivre.
Bon courage.


« Modifié: octobre 17, 2022, 06:59:31 pm par msport »
Cordialement