LOCODUINO

Ma première centrale DCC

Ma première centrale DCC

.
Par : msport

DIFFICULTÉ :

L’article Une station DCC complète, polyvalente et économique avec JMRI. a un succès mérité et décrit précisément toutes les étapes pour mener à bien ce projet très élaboré.
Mais commencer par un tel projet nécessite de bien maitriser non seulement l’environnement Arduino mais également le câblage et l’électronique.
Avec ce nouvel article nous proposons la réalisation d’un montage basique permettant de commencer avec le DCC de manière simple et peu onéreuse.

Dans le cahier des charges,

  • l’utilisation d’un programme tout fait, sans modification.
  • un coût minimal
  • pas de fer à souder, et donc pas de soudures
  • du matériel que l’on trouve facilement
  • pas d’intervention sur le matériel
  • un montage qui prend 10 mn.
  • et qui permet de valider une configuration JMRI.
  • mais sans Ethernet

Prérequis :

  • connaître les bases de la gestion des fichiers de votre ordinateur
  • savoir télécharger des fichiers et les décompresser
  • et donc savoir les placer au bon endroit
  • savoir utiliser l’IDE Arduino pour charger un programme sur une carte Arduino
  • savoir lire un schéma simple.
  • et quand même avoir entendu parler de DCC, de DCC++ et de ses avatars.

Installation de l’IDE Arduino :

On pourra se référer à : https://wiki.mdl29.net/lib/exe/fetc...
(ardublock n’est pas utile ici)
et également à Arduino : toute première fois !
Pour votre culture, vous pouvez voir : https://www.arduino.cc/reference/fr/

Principe de fonctionnement

On le trouvera dans l’article Réalisation de centrales DCC avec le logiciel libre DCC++ (3) au niveau du schéma reproduit ci-dessous.

Schéma
Schéma

La BaseStation :

Pour cet article, la référence est le paragraphe DCC++ et les shields moteurs de l’article Réalisation de centrales DCC avec le logiciel libre DCC++ (3) : Quel matériel et quelle mise en œuvre ? qui vous permettra de comprendre le fonctionnement de cette centrale.

Le matériel nécessaire

Matériel
Matériel

Une carte Arduino-uno-rev3 (ou clone)
Un arduino-motor-shield-rev3 (ou clone du modèle ci-dessus).
Un bloc secteur 12V 2 ou 3A
Deux ponts DuPont mâle-mâle 10 cm ou deux fils rigides équivalents
Un câble USB type A-B

Nous avons voulu éviter toute modification sur le matériel :

Il est donc impératif d’employer un bloc secteur en 12 V. En effet, telle quelle, l’alimentation du shield moteur est commune entre la carte Arduino et le shield moteur. Or, les concepteurs de la carte Arduino recommandent de ne pas dépasser 12 V pour l’alimenter.
12 V convient au N et au HO et permet déjà une exploitation correcte d’un réseau familial tout en respectant les normes du NMRA. 2 ou 3A permet de faire tourner plusieurs locomotives, et de voir à partir de quel nombre vous obtenez le déclenchement (probablement plus de 4 ou 5). La tension de 12V limite seulement la vitesse.
Ce qui veut dire que vous ne couperez pas de piste au dos du shield moteur, comme vous pouvez le lire dans l’article de référence pour utiliser un deuxième bloc secteur en 15 V ou 18 V.

A noter que l’environnement Arduino est très magnanime avec les clones et les prend en charge. Dans la pratique, il n’y a pas de différence à l’utilisation.

Montage

Le montage
Le montage

En faisant attention à respecter le sens de montage (voir les encoches) et ne pas décaler les broches, on enfiche le shield moteur sur le module Arduino R3

Les ponts
Les ponts

On enfiche les ponts entre les points des connecteurs du module Arduino R3 : entre 10 et 12 et entre 5 et 13. (à fond, pas comme sur la photo)

JPEG - 5.6 kio
JPEG - 132.5 kio
Au complet
Au complet

Le programme

Pour la BaseStation de Gregg Berman, il faut et il suffit de décompresser le zip disponible sur le GitHub de DCC++ et on obtient le répertoire DCCpp_Uno complet. (18 fichiers) qu’on place dans le répertoire des sketches (les programmes) comme :
C:\Users\vous\Documents\Arduino
Il faut donc que les .h et les .cpp soient dans ce répertoire en compagnie du DCCpp_Uno.ino
Il n’y a pas de bibliothèque dans ce cas là.

dccpp_uno.zip

Le fichier se trouve aussi ici :
https://github.com/DccPlusPlus/Base...

le répertoire que l’on doit avoir après décompression

JPEG - 66.6 kio

Si on a bien installé l’IDE (le programme Arduino) on peut double-cliquer sur le nom du fichier DCCpp_Uno.ino qui est précédé du petit logo Arduino. Cela ouvrira le fichier et lancera l’interface que vous voyez plus bas.

La documentation de référence (faire un clic droit puis "Ouvrir le lien dans un nouvel onglet").

Documention du programme

On branche son Arduino en USB sur son ordinateur et on effectue le choix de la carte et du port COM (ce n’est pas forcément le COM1). Version Windows.

Carte et COM
Carte et COM

Et version Mac. Sur Linux ça sera proche, quelque chose comme /dev/ttyXX

Port Arduino sur Mac
Port Arduino sur Mac

On téléverse le sketch (le programme) dans l’Arduino

Téléverser
Téléverser

Premier test : On ouvre le moniteur série configuré à 115200 bauds, il répond :

<DCC++ BASE STATION FOR ARDUINO UNO / ARDUINO MOTOR SHIELD: V-1.2.1+ / Jan 17 2022 21:47:01>><<N0: SERIAL>

Moniteur
Moniteur
Vitesse
Vitesse

Deuxième test : On branche l’alimentation 12V et on tape <1> dans la ligne du Moniteur série configuré à 115200 bauds. Les quatre LED s’allument.

Sur table
Sur table

Ensuite, on branche la voie principale sur A+ et A-
A partir du moniteur série, on peut tester les commandes disponibles pour DCC++ :

La liste originale des commandes disponibles en anglais :
https://github.com/DccPlusPlus/Base...

Et une traduction avec Google à peine améliorée :

Commandes pour DCC++

A ce point de cet article, ces documents ne vous sont proposés que comme référence, il n’est pas nécessaire de les consulter.

Il faut simplement retenir que pour faire démarrer la locomotive neuve que vous venez de sortir de sa boite et que vous venez de placer sur la voie principale alimentée par A+/A-, vous taperez dans le moniteur série :
<1> pour mettre les voies sous tension DCC.
<t 1 3 20 1> où :
<   ...    > encadre une commande DCC valide

  • t est la commande pour invoquer la "Throttle" (les gaz)
  • 1 le registre qui reçoit la vitesse de la locomotive
  • 3 l’adresse de la locomotive (3 est celle d’une locomotive neuve)
  • 20 le cran de vitesse
  • 1 le sens, ici vers l’avant.

Si vous avez une locomotive d’occasion dont vous connaissez l’adresse, vous remplacerez 3 par cette adresse.

Et si vous ne connaissez pas l’adresse de la locomotive que vous venez d’acquérir mais que vous êtes sûr qu’elle est équipée d’un décodeur, vous pouvez lire cette adresse (le CV 1) sur la voie de programmation alimentée par B+/B-.
Attention, certains vendeurs, par méconnaissance qualifient de digitales des locomotives qui ne sont équipées que d’une prise pour recevoir un décodeur, sans qu’il soit installé.
Donc avec la locomotive sur la voie de programmation (B+ et B-), on tape dans le moniteur série :
<R 1 123 123> , la centrale répond dans ce moniteur série :
<r123|123|1 xxx>xxx est l’adresse de la locomotive posée dessus. Si xxx vaut -1, ça a raté.
<   ...    > encadre une commande DCC valide

  • R est la commande pour lire sur la voie de programmation
  • 1 le registre de l’adresse de la locomotive
  • 123 une valeur choisie arbitrairement pour contrôle
  • 123 idem
    A noter que les locomotives peuvent disposer d’une adresse longue (supérieure à 128) et la commande précédente ne fonctionne pas. On peut souhaiter réinitialiser le décodeur à l’adresse 3 avec une des commandes standard sur la voie de programmation :
    <W 8 8 123 123> ou
    <W 8 33 123 123>
    L’adresse de la locomotive redevient 3.
    La lecture d’une adresse longue sort du cadre de cet article.

Les pièges dans lesquels on peut tomber pour la lecture de l’adresse :
1. on oublie de mettre les voies sous tension avec <1>
2. on ne se met pas sur la voie de programmation
3. il y a un mauvais contact avec la voie

Attention, il est vivement déconseillé de mettre une locomotive analogique sur une voie alimentée en DCC.

Où acheter ?

Où acheter ? : une liste de fournisseurs, et ci-dessous des liens directs :

https://www.amazon.fr/Arduino-A0000... 24€

https://store.arduino.cc/collection... 20€
https://store.arduino.cc/collection... 24€

Les liens ci-dessous peuvent disparaitre au gré de la disponibilité chez les fournisseurs. Si vous voulez éviter eBay et Aliexpress, reportez vous aux liens ci-dessus. Sur eBay, vous trouverez également des fournisseurs en France.

https://www.ebay.fr/itm/173654508592 12V 2A 4,8€
https://www.ebay.fr/itm/401878537847 motor shield 8€
https://www.ebay.fr/itm/313621201790 DuPont 1,27€

https://fr.aliexpress.com/item/1005... R3 9,3€
https://fr.aliexpress.com/item/3293... R3 8,8€
https://fr.aliexpress.com/item/3280... motor shield 5,08 €
https://fr.aliexpress.com/item/1005... 12V 3A 4,59€

Attention au shield moteur : ceux qui ont des fonctions complémentaires : LED, buzzer, etc. ne sont pas compatibles car les broches correspondantes sont occupées.

Quelles limites pour ce montage ?

Le shield moteur ne comporte pas de protection de court circuit, c’est le sketch (le programme) qui l’assure.
La BaseStation de Gregg Berman (DCC++) a une protection contre les courts-circuits qui limite le courant à 1,5 A.
On retiendra que ce montage convient très largement pour trois locomotives récentes en simultané aussi bien en N qu’en HO. La voie de programmation est utilisée occasionnellement, et en tout cas pas en même temps que la voie principale.

Comment piloter Ma première centrale DCC :

On a vu que l’on pouvait entrer les séquences de commandes depuis le serial moniteur de l’IDE de l’Arduino. Ce qui veut dire que c’est le cas de tout dispositif permettant d’envoyer ces séquences sur le RX (broche 0 de l’Arduino) qui donc fera l’affaire. Mais c’est trop tôt pour en parler.

On a présenté une souris sans fil, mais c’est trop difficile pour commencer, cela sort du cadre de cet article.
Une manette simple et autonome pour LaBox

Plus simple, une manette en Processing :
http://forum.locoduino.org/index.ph...

Moins simple, mais efficace, le Contrôleur à télécommande infrarouge pour centrale DCC++ a été utilisé avec succès pour cette centrale basique.

Mais parmi les logiciels gratuits sur ordinateur JMRI semble être la référence :
(mais on peut aussi regarder CdmRail et RocRail)

JMRI et Ma première centrale DCC :

Vous pouvez installer JMRI si ce n’est déjà fait :

https://www.jmri.org/help/fr/html/a...

JMRI installé et une fois connecté à une centrale DCC++, on dispose de ses régulateurs permettant de piloter les locomotives équipées d’un décodeur DCC.
C’est l’article suivant JMRI pour Ma première centrale DCC.

Ultérieurement quand on connait JMRI, on utilise les fonctions qui sont affichées dans le menu DCC++ :

JMRI menu DCC++
JMRI menu DCC++

Lorsque JMRI est connecté à un réseau via DCC++, on a :

  • DCC++ Traffic Monitor : vous pouvez suivre les ordres DCC
  • Send DCC++ Command : tester manuellement
  • Track Current Meter : suivre la consommation de courant. si elle fluctue de manière importante, revoir l’encrassement des voies.
  • Configure Sensors and Turnouts : en vue de piloter votre réseau
  • Load DCC++ over TCP Server : toutes les possibilités avec Ethernet ...

Variante :

On peut utiliser un MEGA à la place du UNO, les ponts qu’il faut changer :
Supprimer le pont 10 - 12 et déplacer l’autre pont pour faire 2 - 13.
Il faut aussi sélectionner "Arduino Mega or Mega 2560" dans l’IDE. L’IDE gère les différences à la compilation.

Crédit :

COPYRIGHT (c) 2013-2016, DCC++ BASE STATION est un programme C++ écrit par Gregg E. Berman pour les Arduino Uno et Arduino Mega utilisant l’IDE Arduino, et ce, sous GNU General Public License. Ce programme respecte la norme DCC publiée par la NMRA et le DCC produit est donc compatible avec les matériels et logiciels qui s’appuient sur la même norme. Vous trouverez à titre documentaire une analyse de DCC++ dans la série d’articles Réalisation de centrales DCC avec le logiciel libre DCC++ (1) et de son évolution avec DCCpp dans Bibliothèque DCCpp.

Résumé pour les pressés :

  1. Je télécharge et j’installe l’IDE Arduino sur mon ordinateur.
  2. Je me procure le matériel et je vérifie mon Arduino avec blink.ino (j’ai choisi la carte et le port COM).
  3. J’enfiche la carte moteur sur l’Arduino UNO
  4. Je mets les ponts 5-13 et 10-12
  5. J’utilise DCCpp_Uno.zip ou je télécharge depuis le GitHub de DCC++ le fichier DCCpp_Uno compressé.
  6. Je le décompresse et l’installe (en entier) dans le répertoire C :\Users\moi\Documents\Arduino
  7. Je le lance (double-clic dessus) après avoir connecté l’Arduino en USB. Je clique sur « Téléverser »
  8. Je lis « Téléversement terminé »
  9. J’ouvre le Moniteur série à 115200 bauds et lis le texte de DCC++
  10. Je branche mon alimentation 12 V et tape <1>
  11. Si les quatre LED ne s’allument pas, je revérifie tout depuis le début.

20 Messages

  • Ma première centrale DCC 28 janvier 2022 22:28, par msport

    Bonjour,

    si vous avez des problème pour réaliser le montage de cet article, préférez poster sur le forum, où vous pour joindre des photos de votre montage ou des captures d’écrans. Ce sera peut être plus simple que de longues explications.

    Et profitez en pour lire l’article 298 "Ou et comment demander de l’aide"

    Voir en ligne : Aide pour Ma première centrale DCC

    Répondre

  • Ma première centrale DCC 29 janvier 2022 11:26, par Fantasio

    De nouveau un sujet très intéressant et adapté aux débutants.
    Juste une remarque :
    Peut être mes yeux me jouent des tours, mais j’ai l’impression que les cables ne sont pas branchés correctement :

    • le cable vert semble branché entre 13 et 10 (théoriquement entre 13 et 5)
    • le cable bleu entre 12 et 5 (théoriquement entre 12 et 10).

    Erreur de câblage dans les photos ou problème de vision ?

    Répondre

    • Ma première centrale DCC 29 janvier 2022 11:33, par msport

      Excellente remarque : c’était pour voir ceux qui suivent. C’est le tableau qui fait foi. L’ophtalmo pourra attendre.

      Répondre

      • Ma première centrale DCC 29 janvier 2022 11:42, par Fantasio

        Merci Michel pour ta réponse rapide.
        C’est un montage que je vais essayer dès que possible (il me manque juste le shield). Très bon article au demeurant !!

        Répondre

  • Ma première centrale DCC 10 février 2022 12:26, par guy

    Bonjour, j’utilise " des décodeur DCC pour les signaux à deux ou trois feux sur Arduino NANO/UNO " et serait il possible de les brancher sur cette centrale et ne commander que les signaux .... et utiliser la dr5000 pour la circulation des trains , retro, etc ...... pourquoi, eh bien , quand plusieurs trains circulent , beaucoup de données arrivent à la DR, et les feux ne changent pas à chaque fois,

    Répondre

    • Ma première centrale DCC 10 février 2022 12:46, par msport

      Bonjour,

      oui, à condition de garder les deux bus DCC séparés et de gérer ce qui permet à DCC++ de piloter la signalisation.

      Répondre

      • Ma première centrale DCC 10 février 2022 12:55, par guy

        oui bien sur , c’est ce que j’ai fait , les 4 leds s’allument quand je mets ’ <1> ’ dans le moniteur ...et donc apres il faut configurer les adresses de tous les signaux ?

        Répondre

  • Ma première centrale DCC 10 février 2022 16:27, par msport

    Oui, vous trouverez ce qu’il faut dans le document Commandes pour DCC++, fourni ici comme référence, mais ce n’est pas le sujet de cet article.
    Voir le paragraphe ####DECODEURS ACCESSOIRES STATIONNAIRES ET AIGUILLAGES####
    D’ailleurs, pour un dépannage, c’est sur le forum que ça se passe.

    Répondre

    • Ma première centrale DCC 17 février 2022 22:56, par msport

      Notez que vous pouvez utiliser un MEGA à la place du UNO, seuls les ponts ne sont pas les mêmes.
      Ce qu’il faut changer :
      Supprimer le pont 10 - 12 et déplacer l’autre pont pour faire 2 - 13.
      Il faut aussi sélectionner "Arduino Mega or Mega 2560" dans l’IDE. L’IDE gère les différences à la compilation.
      Je recommande néanmoins de commencer ce montage avec un UNO. Un accident est vite arrivé et son remplacement vous coutera moins cher.
      De plus, ce montage est à conserver tel quel pour vérifier par comparaison ce que vous monterez ensuite.
      Il vous permettra de programmer les CV de la grande majorité des décodeurs et ce, en toute indépendance d’une centrale alimentant votre réseau.

      Répondre

  • Ma première centrale DCC 22 février 2022 10:35, par Daniel PIQUET

    Félicitation pour votre article simple et efficace. Alors que j’avais de nombreuses interrogations concernant les MAX471 défectueux, le choix du logiciel et du booster qui me laissaient dans l’expectative, j’ai pu monter votre station qui a fonctionné du premier coup.
    Avec une telle base, je serai plus serein pour l’améliorer, si nécessaire.
    Encore merci pour ce "back to basics" (ou retour aux fondamentaux en bon français).

    Répondre

  • Ma première centrale DCC 30 septembre 2022 17:27, par luigi bassi

    Bonjour,
    Permettez-moi de me présenter : je m’appelle luigi, je suis ingénieur en mécanique et je travaille depuis des années dans le domaine des logiciels. Je suis maintenant à la retraite et pour passer le temps, je me suis lancé dans l’arduino, avec lequel je voulais contrôler mon modèle.

    PROBLÈME :

    Il y a 10 trains qui circulent sur le modèle, mais au maximum, ils en font circuler deux à la fois ; la plupart du temps, seul un volt circule et ceux-ci fonctionnent sur 4 circuits complètement indépendants et isolés électriquement.
    Tout le matériel roulant est constitué de vieux trains analogiques que j’ai numérisés avec des décodeurs ESU.
    Les aiguillages sont contrôlés par arduino avec des relais et sont actionnés par des capteurs maghet qui exploitent l’effet HALL.
    Toutes les pistes sont des séries K 22...
    La station centrale est auto-personnalisée avec des diagrammes de Luca Dentella (voir youtube).
    https://www.youtube.com/watch?v=kWd...
    Le boster est également auto-construit voir luca dentella
    https://www.lucadentella.it/2020/11...
    Cela fait longtemps que Luca Dentella n’est plus disponible, et j’ai un problème, qui je crois est (logiciel), et j’ai cherché à différents endroits sans obtenir de réponse.
    Mes problèmes sont les suivants :
    1. Les fonctions qui commandent les lumières des trains fonctionnent parfaitement dans certains trains et pas dans d’autres. L’activation et la désactivation ne fonctionnent pas dans certains trains, même si les instructions sont exactement les mêmes.
    Je joins les parties du code avec ceci.
    2. Il arrive parfois qu’en l’absence de court-circuit détecté par le poste de commande, un train s’arrête de manière aléatoire avec même les lumières allumées ; à ce moment-là, je dois débrancher l’alimentation électrique et la remettre sous tension ; le train redémarre mais toutes les lumières restent éteintes, comme elles restent éteintes lorsqu’il y a un court-circuit, le poste de commande s’éteint et lorsque j’appuie à nouveau sur la touche, les lumières sont toutes éteintes jusqu’au prochain redémarrage à partir de la commande logicielle.
    3. le comportement des trains est très aléatoire. Par exemple, j’ai remarqué que faire varier le max_events du Timer.h de la bibliothèque Timer provoque un comportement très différent. Pourquoi ?
    Très souvent, par exemple, la désactivation ne fonctionne pas et seulement sur certaines locomotives.

    DEMANDE :
    Est-il possible d’obtenir de votre part une assistance (payante, bien sûr) pour résoudre ces problèmes ?
    Pour moi, il serait important, s’il était possible de conserver tout le matériel installé, mais si vous pensez qu’il serait préférable de passer à quelque chose de standard et commercial, n’hésitez pas à me le dire (encore mieux si vous le vendez).
    Je vous remercie d’avance de votre attention et vous salue cordialement.
    Code
    #include <Timer.h>
    #include <ButtonV2.h>
    #include <Centipede.h>
    #include <Event.h>
    #include <Nextion.h>
    #include <Wire.h>
    #include "DCCpp.h"

    #define LOCO_ADDRESS_1 3 // adresse du décodeur du train 1
    #define LOCO_ADDRESS_2 13 // adresse du décodeur du train 2
    #define LOCO_ADDRESS_3 5 // adresse du décodeur du train 3
    #define LOCO_ADDRESS_4 9 // adresse du décodeur de train 4
    #define LOCO_ADDRESS_5 7 // adresse du décodeur de train 5
    #define LOCO_ADDRESS_6 11 // adresse du décodeur de train 6
    #define LOCO_ADDRESS_7 15 // adresse du décodeur de train 7
    #define LOCO_ADDRESS_8 17 // adresse du décodeur de train 8
    #define LOCO_ADDRESS_9 19 // adresse du décodeur de train 9
    #define LOCO_ADDRESS_10 21 // adresse du décodeur de train 10

    #define LOCO_LIGHTS_FUNCTION 0 // c’est l’équivalent de la fonction F0 habituellement utilisée pour les phares.

    #define WAGONS_LIGHTS_FUNCTION 1 // Feux du wagon F1

    #define LOCO_SMOKE_FUNCTION 2 // Fumée F2
    // attention pour les deux locomotives à vapeur F2 est fumée n’ont pas de feux de wagon

    #define LOCO_REGISTER_1 1
    #define LOCO_REGISTER_2 2
    #define LOCO_REGISTER_3 3
    #LOCO_REGISTER_4 définit 4
    #define LOCO_REGISTER_5 5
    #define LOCO_REGISTER_6 6
    #define LOCO_REGISTER_7 7
    #define LOCO_REGISTER_8 8
    #define LOCO_REGISTER_9 9
    #define LOCO_REGISTER_10 10

    #define CV_SHORT_ADDRESS 1
    État des fonctions locoFunctions_1 ;
    FonctionsEtat locoFunctions_2 ;
    FonctionsEtat locoFunctions_3 ;
    FonctionsEtat locoFunctions_4 ;
    FonctionsÉtat locoFunctions_5 ;
    FonctionsEtat locoFunctions_6 ;
    FonctionsÉtat locoFunctions_7 ;
    FonctionsÉtat locoFunctions_8 ;
    FonctionsEtat locoFunctions_9 ;
    FonctionsEtat locoFunctions_10 ;
    // partie de DCCpp pour l’installation

    DCCpp::begin() ;

    DCCpp::beginMainMotorShield() ;

    // activer les sorties
    DCCpp::powerOn(true, false ) ;
    DCCpp::loop() ;
    retour = t.after(2000, abc_brk_1_off) ;
    retour = t.after(2100, stop_TR8) ;
    retour = t.after(2350, right_exchange_22) ;
    — 
    void stop_TR3()

    if(locoFunctions_3.isActivated(LOCO_LIGHTS_FUNCTION)) locoFunctions_3.inactivate(LOCO_LIGHTS_FUNCTION) ;
    else locoFunctions_3.activate(LOCO_LIGHTS_FUNCTION) ; // allume ou éteint les lumières
    DCCpp::setFunctionsMain(LOCO_REGISTER_3, LOCO_ADDRESS_3, locoFunctions_3) ;

    DCCpp::setSpeedMain(LOCO_REGISTER_3,LOCO_ADDRESS_3,128,0, true) ;


    Répondre

  • Ma première centrale DCC 30 septembre 2022 17:29, par luigi bassi

    ....Continue

    My phone number +393356634681
    My address Luigi Bassi
    via Tomaso nani 40
    23100 sondrio
    Italia

    Répondre

  • Ma première centrale DCC 1er octobre 2022 18:43, par msport

    Bonjour,

    Locoduino est un site de bénévoles, je ne sais pas si votre demande d’aide rémunérée trouvera un écho.

    D’une manière générale, les montages de Luca Dentella s’inspirent des mêmes montages que ceux de Locoduino :
    DCC++, Bodnar, etc.

    Mais les détails diffèrent et comme on le sait, le diable se cache dans les détails.

    Vos problèmes semblent plutôt venir de la mise en œuvre que des principes.

    1. Les fonctions qui commandent les lumières sont à identifier dans les notices des décodeurs et elles peuvent être réaffectées.
    2. L’extinction des lumières peut être due à un encrassement des pistes. Comme la commande de vitesse est répétée, la locomotive peut redémarrer.
    3. Je ne suis pas capable d’analyser le code de DCC++ si c’est de lui qu’il s’agit. De plus, ce qu’il faut analyser c’est l’interaction avec le dispositif qui émet les ordres. Pour cela, un sniffer est très utile ("sniffer" à rechercher sur le forum).
    Si vous utilisez JMRI, affichez les échanges avec DCC++.

    Je vous suggère de réaliser un ou des montages de Locoduino pour substituer à ceux de Luca Dentella et de poster sur le forum le détails des difficultés rencontrées comme expliqué ici :

    Cordialement

    Voir en ligne : Où et comment demander de l’aide ?

    Répondre

  • Ma première centrale DCC 22 mai 2023 10:13, par loulout

    Bonjour,

    J’utilise une carte Uno Wifi Rev2 (je sais, c’est apparemment pas courant). Les timers sont différents, et sans doute plein d’autres choses. Je voudrais seulement m’assurer que le courant arrive bien sur les voies avant de tenter d’envoyer des commandes. Et ce n’est pas le cas.

    J’utilise le Motor Shield V3 Arduino que j’ai posé sur la carte. Je me pose une question sur l’alimentation du Motor Shield. Vous dites qu’elle est commune avec la carte Uno. Est-ce que ça signifie qu’il suffit de brancher une alim 12V sur le port Jack de la carte ?

    J’ai lu sur d’autres sites que l’alimentation n’est pas commune. Et les schémas dans cet article montrent une alimentation via le bornier du Motor Shield.

    Donc ma question est : y a-t-il d’autre chose à faire qu’alimenter la carte Uno via le port Jack ? Je précise que j’ai fait des essais en connectant les différents pins comme indiqué dans l’article, en config Uno, Mega ou sans utiliser les pins. Je ne sais pas si cela a un rapport avec l’alimentation.

    Cordialement

    Répondre

  • Ma première centrale DCC 22 mai 2023 11:07

    Regardez les schémas des cartes UNO et motor shield (facile à trouver sur internet).
    L’alimentation pour les Rails (12V ou plus en général) doit être branchée sur la carte moteur (car c’est elle qui contient les circuits de puissance.
    Si l’alimentation est commune avec la carte Arduino (voir schéma), alors le 12V ou plus est dangereux pour l’Arduino : il faut couper la liaison et insérer un régulateur (entre 7,5 et 9V idéalement) pour alimenter l’Arduino.

    Tout ceci est expliqué abondamment à plein d’endroits sur Locoduino et ailleurs (je n’ai pas d’adresse à donner)

    C’est simple, mais si cela vous semble compliqué alors revenez aux cartes standard comme tout le monde : cela ne va pas vous ruiner.

    Répondre

  • Ma première centrale DCC 2 décembre 2023 19:06, par christian

    Bonjour

    Je cherche a compiler DCCpp_Uno.ino.

    J ai récupéré plusieurs librairies manquantes sur le net.
    Malheureusement certaines doivent être trop recentes.
    (message d erreur de template manquant sur ShiftRegister74HC595).

    puis message d erreur sur des déclaration manquante etc

    Vous est il possible de fournir dans un zip les librairies nécessaires pour la compilation ?

    Par avance merci.

    Répondre

  • Ma première centrale DCC 2 décembre 2023 20:34, par msport

    Bonsoir,
    vous êtes sur de compiler le projet DCCpp_Uno.ino ?
    On n’utilise pas ici de 74HC595.
    Par ailleurs, il est dit dans le texte :
    il faut et il suffit de décompresser le zip disponible sur le GitHub de DCC++ et on obtient le répertoire DCCpp_Uno complet. (18 fichiers) qu’on place dans le répertoire des sketches (les programmes) :
    Donc, il n’y a pas de bibliothèque dans ce cas là.
    Cordialement

    Répondre

    • Ma première centrale DCC 3 décembre 2023 10:57, par christian

      je suis reparti d une installation propre de l IDE arduino version 1.18.19 pour windows
      re telechargé dccp_uno

      j ai toujours des erreurs de compilation

      C :\Users\sebme\Desktop\arduino\dccpp_uno\DCCpp_Uno\DCCpp_Uno.ino:427:152 : warning : backslash and newline separated by space

      celles ci se corrigent en enlevant les espaces en trop a la fin de la ligne

      mais celle ci me paraissent plus compliqué a resoudre ...
       :\Users\sebme\Desktop\arduino\dccpp_uno\DCCpp_Uno\DCCpp_Uno.ino:196:59 : warning : ISO C++ forbids converting a string constant to ’char*’ [-Wwrite-strings]
      CurrentMonitor mainMonitor(CURRENT_MONITOR_PIN_MAIN,"") ; // create monitor for current on Main Track

      quel version de l ide utilisez vous pour compiler DCCpp_Uno.ino disponible sur le site
      dans les commentaires il est indiqué "Arduino IDE 1.6.6."

      Répondre

  • Ma première centrale DCC 3 décembre 2023 12:21, par msport

    Bonjour,
    je viens de télécharger le programme depuis l’icône de cet article.
    J"ai double cliqué sur dccpp_uno.zip, le zip dans les téléchargements
    J’y ai trouvé puis j’ai glissé copié le répertoire DCCpp_Uno sur le bureau
    Dans ce répertoire DCCpp_Uno, j’ai fait un clic droit sur DCCpp_Uno.ino pour l’ouvrir avec Arduino IDE.
    L’Arduino IDE 1.8.19 précédemment installé en W10 s’est ouvert.
    J’ai lancé la compilation avec l’icône Vérifier.
    Sans problème, j’ai obtenu :
    Le croquis utilise 18188 octets (56%) de l’espace de stockage de programmes. Le maximum est de 32256 octets.
    Les variables globales utilisent 888 octets (43%) de mémoire dynamique, ce qui laisse 1160 octets pour les variables locales. Le maximum est de 2048 octets.

    Vérifiez votre installation et vos manipulations. Vous avez du faire des copier coller non prévus.

    Répondre

  • Ma première centrale DCC 10 octobre 20:47, par Squeeze

    Bonjour,

    Je suis en train d’essayer de mettre en place ma centrale DCC, mais j’ai un souci "théorique" : En effet, autant je comprends bien le principe d’envoyer des commandes en DCC, autant les commandes pour (par exemple) lire l’adresse de la locomotive (style ), je ne comprend simplement pas comment ça marche électroniquement. (D’ailleurs ça ne marche pas chez moi)

    Comment l’Arduino peut-il lire ces valeurs ? Je croyais avoir compris que pour pouvoir avoir un retour de la locomotive il fallait le faire avec le protocole RailCom et le zero stretched bit... Quelqu’un pourrait m’expliquer comment l’arduino est sensé récupérer l’id de la locomotive ?

    merci (et merci pour le site et l’article qui sont tops)

    Répondre

Réagissez à « Ma première centrale DCC »

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.)

Rubrique « Matériel »

Les derniers articles

Les articles les plus lus