LOCODUINO

Comment piloter trains et accessoires en DCC avec un Arduino (3)

Assemblage des éléments d’une mini-centrale DCC

. Par : Dominique

L’architecture générale d’une centrale DCC On a vu comment une carte Arduino peut générer des signaux DCC de commande de vitesse, de fonction et d’accessoire, voire de programmation. Entre notre carte Arduino et les rails, il faut, bien-sûr, amplifier ces signaux pour qu’ils puissent commander les moteurs des locomotives (via son décodeur) (…)

Retourner à l'article

Vous répondez à :

Comment piloter trains et accessoires en DCC avec un Arduino (3) 29 novembre 2017 09:49, par laiguilleur

Bonjour,

Très interressé par vos sujets sur locoduino, pouvez-vous m’envoyer s.v.p les schémas électriques de la centrale dcc dans le paragraphe ajouter un tco avec afficheur.

merci
Cordialement

Voir en ligne : Comment piloter trains et accessoires en DCC avec un Arduino (3)

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

40 Messages

  • inverser la positions du booster et de l’Arduino ? 10 février 2015 10:23, par DomD

    Bonjour, et surtout merci pour toutes ces informations très pertinentes et très bien expliquées. Je suis encore débutant dans tout cela alors si je ne le suis pas (pertinent) dans ma question, vous saurez m’excuser.

    J’ai bien noté la position de l’Ardiuno dans le premier schéma de l’article, à l’amont du booster : l’arduino doit donc "gérer" toutes les manettes...
    J’ai un circuit H0 avec du matériel Roco, avec donc un booster 1074 et une multiMaus. Je souhaiterais continuer à piloter les loco avec les multimauss, et laisser le soin à l’arduino de gérer quelques situations particulières, par exemple des trains trop proches (faire ralentir celui qui rattrape), deux trains qui se foncent dedans (couper tout) ...
    Et donc je me demandais si je pouvais faire comme cela :

    • mettre l’arduino après mon booster Roco, pour récupérer le courant alternatif à destination les rails AVANT qu’il n’y arrive,
    • analyser ce signal (comme indiqué dans un autre article), avec un octocoupleur
    • si pas d’intervention, recomposer le même signal avec l’arduino et l’envoyer aux rails avec un booster à base de LMD18200
    • si intervention, modifier certaines valeurs (vitesse d’un train par exemple), recomposer le signal modifier et l’envoyer au rail comme ci-dessus.
      Cela permet de ne faire faire à l’arduino que ce que je souhaite.
      Merci de vos remarques et avis
      Bien cordialement
      DomD

    Répondre

  • Dans l’absolu, votre projet ne serait pas techniquement impossible mais il me semble qu’il serait d’une complexité inutile.
    Je comprend bien l’intérêt de réutiliser votre Multimaus, mais développer une centrale qui retransmettrait les trames DCC de votre Multimaus après modification de certaines en fonction de votre retrosignalisation (comment déterminez-vous les adresses des locos à ralentir ou arrêter ?) n’est pas trivial.

    Autant concevoir une centrale sachant gérer la retrosignalisation (à venir sur Locoduino) et trouver ensuite une façon de raccorder votre Multimaus.

    Il existe des interfaces PC pour la Multimaus qui seraient peut-être utilisables, mais je ne les connais pas. L’interface CAN de la MS2/1 serait plus facile à adapter.

    Donnez-nous plus de détails sur votre retrosignalisation : d’autres solutions seront peut-être possibles.

    Répondre

  • Comment piloter trains et accessoires en DCC avec un Arduino (3) 24 février 2015 07:57, par Malhar Deshmukh

    I have a arduino uno. I also have 8 locomotives,2 are DCC .I want to control all of them using the arduino.I also want to use the arduino or atmega328 or attiny85/84 IC in the loco as the decoder.I know I cant use the bare arduino,I need to configure a booster.I can easily do the electronics job,But I cant do the sketch or software job.I don’t see a sketch here.can you provide a sketch for the controller/Command station and also for the decoder ?
    can you please describe what you have done in ENGLISH please ?I’ve tried to translate it ,but the translate didn’t go well.I live in India.I cant understand french.If you cant ,I’ll stick with the translator.Please contact me on my mail address "malhar_deshmukh@outlook.com

    Répondre

  • Le site de RailStar ne répondant plus, pour se procurer la bibliothèque CmdrArduino, il faut aller sur Github :

    https://github.com/Railstars/CmdrArduino

    il est notamment indiqué que la répétition automatique des commandes de vitesse ne fonctionne pas. Par conséquent c’est votre code qui doit répéter les commandes de vitesses, même si la vitesse ne change pas.

    Personnellement je les répète 10 fois par seconde.

    Nous sommes intéressés par votre expérience avec cette bibliothèque.

    Voir en ligne : Bibliothèque CmdrArduino

    Répondre

  • Bonjour,

    j’ai comme écran lcd un Groove RGB BackLight avec I2C Port.
    Puis-je utiliser ce type d’écran, si oui où dois-je connecter SDA (DataLine) et SCL (Clock) sur l’Arduino dans votre configuration ?
    Dans les exemples de cet écran les ports A4 et A5 sont utilisés.

    Bien cordialement

    Jean-Eric

    Répondre

  • ca me libère bien A4 et A5 mais pas sur que cela fonctionne avec serLCD. votre avis ?

    Répondre

    • Votre écran LCD est un modèle avec interface I2C. Il se raccorde donc sur les broches délivrant les signaux SDA et SCL.

      Vous devez donc libérer A4 et A5 en connectant les boutons sur 2 broches libres et en adaptant leur déclaration (broches digitales ou analogiques, peu importe).

      Evidemment, ce n’est plus la bibliothèque SerLCD qui convient, mais la bibliothèque LiquidCrystal_I2C qui est décrite ailleurs dans ce site.

      Bonne réalisation.
      Dominique

      Répondre

  • Mesure de courant depuis LMD18200 7 mai 2016 23:32, par Tanguy

    Bonjour Dominique,

    merci pour ce très bel article qui m’a permis de me lancer enfin dans la construction de ma première centrale DCC.
    Après avoir digitalisé mon unique loco, j’ai construit une micro centrale a base d’Arduino nano + LMD18200 + un bouton encodeur en m’inspirant plus que largement de cet article. Résultat convaincant : les ralentis sont très fluides.
    Je me suis ensuite attaqué à la mesure de courant pour protéger mon réseau des courts-circuits. En ajoutant une résistance entre la sortie de mesure de courant du LMD18200 et la masse et en lissant le signal obtenu par une moyenne mobile exponentielle (principe découvert sur le projet DCC++) le résultat me semble satisfaisant. J’obtiens environ :
    5 mA à vide
    20 mA avec ma loco en DCC pour un cran de vitesse = 10
    115 mA avec ma loco en DCC pour un cran de vitesse = 126
    Je n’ai pas encore pu confronter ces résultats calculés à une mesure au multimètre.

    J’imagine que le lissage logiciel pourrait être avantageusement remplacé par un lissage électronique (probablement avec l’ajout d’un condensateur bien choisi) mais ce n’est pas malheureusement pas dans mes compétences.
    Pensez-vous que ce signal lissé électroniqement pourrait également couper automatiquement le booster en agissant toujours electroniquement sur l’entrée PWM ?

    Et une dernière question très intéressé : avez-vous en projet la construction d’une carte traction DCC + CAN tout intégré dans la même veine que la carte 8 servo ?

    Tanguy

    Répondre

    • Mesure de courant depuis LMD18200 8 mai 2016 08:46, par Dominique

      Bonjour Tanguy,

      Je vous remercie pour vos encouragements et surtout votre réussite et votre ambition d’aller plus loin avec une carte CAN+DCC.

      je n’ai pas encore testé la mesure de courant de DCC++, car j’ai préfèré utiliser un petit circuit breakout tout fait à base de Max471. Ce circuit se branche en série avec l’alimentation continue du LMD18200, comme un ampèremètre et me donne une indication sans nécessiter de somme exponentielle qui prend du temps calcul.

      Je n’ai pas encore fait de mesures comparatives avec un ampèremètre, mais ça va venir.

      J’ai décrit ce montage dans un des derniers commentaires de l’article 4.

      La mesure est récupérée sur une entrée analogique et le programme bloque la commande PWM du LMD18200 des qu’un seuil est atteint. Ça marche très bien !

      Ce serait une bonne idée de faire une carte CAN+DCC.
      Personnellement j’ai regroupé les fonctions de traction sur un Mega assocué à une carte CAN. Elle est destinée à piloter 8 trains avec des commandes directes et des manettes sans fil. Le gestionnaire recevra les états de mouvement des trains (vitesse) et enverra la signalisation à appliquer (voie libre, ralentissement, sémaphore ou carré).

      Un Nano ne peut pas faire tout cela. Mais une petite centrale pour un va et vient ou une voie de programmation à tout son sens. Je vais plancher sur la question ;)

      Répondre

  • J’ai déjà un DCS50 (DIGITRAX) sur mon réseau.
    Je peux tu rajouter les circuit LMD18200 avec votre projet pour un seul train avec son Arduino pour controler ce train seulement sans affecter le reste du réseau ?

    Répondre

    • Bonjour Gérald,

      Je suis dans le même cas que toi : plusieurs centrales sur le même réseau, avec une voie va et vient pour un train unique (autorail) et j’ai une paire d’aiguilles qui relie le v&v au reste du réseau.

      La seule solution est d’isoler totalement les 2 sous-réseaux en permettant de les relier temporairement avec un relai double ou une paire de relais simples.

      Quand ils sont isolés, les 2 centrales peuvent fonctionner indépendamment l’une de l’autre.

      Quand ils sont reliés, il faut couper la centrale du v&v auparavant et l’ensemble du réseau est alimenté par ta DCS50. Cela permet d’amener ou de retirer le train du v&v.

      Tu pourrais commander les relais d’isolement avec la centrale Arduino de sorte que quand tu la coupes (avec PWM) ça ferme les relais après un petit délai.

      Répondre

  • Faire un broadcast pour la gestion des cantons 11 octobre 2016 07:48, par Jean-Louis

    Bonjour et bravo pour la clarté de toutes les explications.

    Dans le cadre de la gestion des cantons, je voudrais essayer d’utiliser le DCC sur l’arduino pour envoyer une commande broadcast d’arrêt des machines sur un canton. Mon système est assez simple (une grande boucle avec une seule voie de garage), 3 cantons, il est piloté par un Z21 de Fleischmann. J’aimerais y ajouter la centrale DCC arduino. L’idée est la suivante : après détection d’une occupation sur un canton (infra-rouge) la centrale DCC arduino envoie un broadcast sur le canton précédent pour stopper les machines qui circulent dessus. Est-ce réalisable ? A quel niveau dans le code intervenir pour configurer la trame DCC ?

    Merci par avance.

    Jean-Louis.

    Répondre

    • Faire un broadcast pour la gestion des cantons 11 octobre 2016 08:28, par Dominique

      Bonjour Jean-Louis,
      Je comprend votre besoin (stopper tout train situé dans le canton précédent un canton dans lequel un train est détecté).
      Tel que vous le présentez, il y a une difficulté : la centrale Z21 alimente tout votre réseau en DCC et il n’est pas possible d’envoyer un autre signal DCC par une autre centrale, en même temps (sinon, ça va fumer ...).
      La solution est évidemment la rétrosignalisation qui agit sur la centrale Z21.
      Sinon, il faut remplacer cette centrale par une centrale Arduino construite et programmée par vous-même, par exemple avec le logiciel de Pierre de la série Gestionnaire en C++ et ce que j’explique dans cet article.
      Mais vous allez peut-être préciser votre projet pour avoir une réponse plus pointue...
      Cordialement
      Dominique

      Répondre

  • Bonjour Dominique et merci pour cette réponse rapide.

    En fait je pensais isoler mes cantons avec des relais doubles (une fois sur le DCC du Z21, une fois sur le DCC de l’arduino). Possible ?

    Y a t’il des risques de court-circuits ?

    Merci.

    Jean-Louis

    Répondre

    • Oui c’est possible d’isoler les zones avec des relais double, mais le risque de court-circuit dépend de votre électronique de commande et des capteurs que vous mettrez en oeuvre pour piloter les relais.
      Ca me semble une usine à gaz à coté d’une rétrosignalisation "normale" sur la Z21 (en commandant les machines par leur adresse DCC sans recours au broadcast) ou une centrale "made in moi-même" faite en Arduino avec la rétrosignalisation ad hoc (connexion directe des capteurs sur l’Arduino).

      J’utilise aussi des relais pour isoler une voie parce que j’ai 2 centrales en action, mais le basculement des relais est exceptionnel, en cas de maneouvre.
      cdt
      Dominique

      Répondre

  • Bonjour,

    Si je comprends bien le circuit MAX471 permet de mesurer le courant qui circule vers le module LMD18200 (1V /A jusqu’à 3 A max). Sa sortie est redirigée vers la borne C/S de l’arduino. Comment sont détectés les court-circuits ? Par logiciel ?

    Merci.

    Répondre

    • Oui c’est exact. La sortie du Max471 est connectée à une entrée analogique (pas la borne C/S ???) de l’Arduino et la détection de court-circuit est une mesure de la valeur du courant comme les autres, par logiciel : lorsqu’un seuil est dépassé, le programme le traite comme court-circuit.

      Le logiciel DCC++ décrit dans le forum ici permet de réaliser facilement une centrale avec détection de court-circuit. Un exemple est .

      Je sens que vous allez bientôt revendre votre Z21 ...

      Répondre

  • Intéressant, mais je ne peux pas voir les images.

    problème ?

    Répondre

  • Merci.

    Savez vous si les court-circuit sont gérés dans l’application DCC minimum ?

    Jean-Louis

    Répondre

  • Bonjour,
    Vos articles sont remarquables et donnent vraiment envie de tester le passage au digital sur la base d’Arduino.
    Dans la présentation du site locoduino vous annoncez que nous pouvons commander nos réseaux et en analogique et en DCC.
    J’ai beaucoup de machines, très peu en digital et un beau réseau analogique avec des extensions nouvelles à gérer. Pour ces nouvelles extensions je souhaiterai essayer arduino mais en analogique.

    Si je comprends bien le shéma de montage du booster si je souhaite fonctionner en analogique je branche d’un coté masse arduino et pwm et de l’autre l’alimentation analogique et les rails.
    Est ce bien cela ?

    Merci à vous

    Répondre

    • Merci Pierre, pour vos encouragements.
      Il n’y a pas beaucoup de différence entre l’électronique pour le digital (DCC) et l’analogique (PWM). Dans le 2 cas, on utilise des ponts en H équipés de transistors de puissance. Seule la commande diffère, donc le programme Arduino.
      Mais c’est plus compliqué en PWM si l’on veut traiter la régulation de charge (plus de puissance dans les côtes, moins dans les descentes, par exemple), car en digital c’est le décodeur qui s’en charge.

      Pour le digital, je vous encourage à regarder les articles 182, 185 et 187 dont j’ai déjà réalisé plusieurs exemplaires.

      Pour le PWM, je n’ai pas encore d’expérience et je ne peux répondre précisément à la question, pour vous éviter de crâmer une machine !!!

      Je vous recommande de contacter Zebulon91 sur le Forum LR. Il a réalisé une centrale capable de faire du DCC et du PWM. C’est dans nos projets à Locoduino, mais si vous êtes pressé, commencez par là et tennez nous au courant.

      Une autre solution consiste à installer des décodeurs dans les machines qui n’en ont pas. C’est la solution que j’ai choisie et je m’en sors bien jusqu’à présent avec ce genre de décodeurs à moins de 20€

      Amicalement

      Répondre

  • Comment piloter trains et accessoires en DCC avec un Arduino (3) 29 novembre 2017 09:49, par laiguilleur

    Bonjour,

    Très interressé par vos sujets sur locoduino, pouvez-vous m’envoyer s.v.p les schémas électriques de la centrale dcc dans le paragraphe ajouter un tco avec afficheur.

    merci
    Cordialement

    Voir en ligne : Comment piloter trains et accessoires en DCC avec un Arduino (3)

    Répondre

  • Envoyez-moi un mail privé et je vous envoie mon dossier de réalisation de la version 2 de cette centrale basée sur DCC++, que je décrirai peut-être prochainement .
    Regardez aussi le Forum qui fourmille de détails

    Amicalement

    Répondre

  • Comment piloter trains et accessoires en DCC avec un Arduino (3) 17 décembre 2017 23:09, par Philippe THOMAS

    Bonjour, comment utiliser un Arduino avec une centrale DCC existante ?

    Répondre

    • Bonjour, votre question est d’emblée hors sujet et vous trouverez la réponse en lisant les autres articles et les contributions du forum Locoduino : des applications de l’Arduino même en complément de centrales du commerce sont décrites. Venez exposer ce qui vous intéresserait (on ne peut pas le deviner) sur le Forum, c’est le meilleur endroit pour l’etudier.

      Répondre

  • Bonjour
    Comment se raccordent le LCD 16x2, et la petite carte SerLCD ?
    Merci

    Répondre

    • Bonjour,
      Pour développer une centrale DCC je vous conseille de partir de l’article Réalisation de centrales DCC avec le logiciel libre DCC++ (3) car le système qui est décrit dans cet article (CmdrArduino) est maintenant remplacé avantageusement par DCC++.

      En ce qui concerne l’afficheur lcd, je vous conseille plutôt un modèle I2C comme celui qui est utilisé dans l’article Réalisation d’un va-et-vient automatique et réaliste.
      Cordialement
      Dominique

      Répondre

      • Merci Dominique pour votre rapide réaction.
        Je vais lire cet article en espérant y trouver la facilité car je suis vraiment novice dans ce domaine.
        Le matériel que je possède est :
        Un MEGA
        Deux UNO
        Un NANO
        Un LMD18200 ( que je dois recevoir incessamment sous peu).
        Deux WEMOS D1 mini
        Deux PCA9685
        Un MAX7219 (je ne sais pas vraiment à quoi ça sert, mais voilà je l’ai..)
        Un décodeur à 8 relais.
        Avec tout ça, je devrais arriver à faire quelque chose.
        Petite précision, je dois construire un (petit) réseau en U +/- 3,5mx3,2m , je n’ais pas encore l’idée du thème.
        Pouvoir le commander surtout par pc, ensuite par PCO et éventuellement par petite télécommande maison ou tablette.
        La programmation est un réelle souci pour moi, je lis et relis les explications mais ça rentre pas dans ma petite tête.
        Je ne me décourage pas, finirais bien par arriver à un résultat.
        Une bonne journée.
        A+ peut’être.

        Répondre

  • Bonjour,

    Pourriez-vous me dire où se procurer les cartes booster (LMD18200) et mesure de courant (MAX 471)

    Cordialement

    Luc MARTELOT

    Répondre

  • En n’oubliant pas Aliexpress qui tente de séduire les acheteurs français.

    Voir en ligne : Où acheter ?

    Répondre

  • bonjour je cherche schéme allez retour temporiser en arduino pour train merci

    Répondre

Rubrique Projets

Les derniers articles

Les articles les plus lus