LOCODUINO

Aide
Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mardi 19 mars 2024

Visiteurs connectés : 93

Un décodeur d’accessoire DCC versatile basé sur Arduino

.
Par : Nicolas Zin

DIFFICULTÉ :

<

Quand j’ai commencé à construire mon réseau à l’échelle N, j’ai regardé pour piloter des lumières (des SMD 0402, ou des led standards), mais soit j’avais des difficultés à les programmer simplement (CV & co), soit je suis tombé sur des décodeurs à fabriquer soi-même que je n’ai pas réussi à faire fonctionner. Du coup j’ai décidé de construire le mien en partant d’un Arduino nano, qui est facile à reprogrammer.

Ce décodeur est assez simple. On peut

  • lui assigner une adresse DCC (via un bouton d’apprentissage)
  • le connecter à des lampes LED ou utiliser comme relais
  • pour les lampes LED, on peut choisir différents modes via un bouton poussoir. On peut avoir une lumière constante, une lumière qui grésille, ou avoir les 3 sorties en mode chenillard pour représenter par exemple des feux de travaux.

Ce décodeur a été conçu pour être alimenté par du 16V alternatif, mais on peut aussi l’alimenter via le DCC directement (15v ou 18v) ou via un un signal 16V continu.

https://www.youtube.com/watch?v=Clv...

L’utiliser

L’alimenter

Ce décodeur a été conçu pour être alimenté par une source 16V alternatif. Il est possible de l’alimenter directement par le signal DCC, mais le circuit n’est pas le plus efficace en terme de consommation électrique (on alimente un Arduino, des lampes, et éventuellement un relais. Ça fait beaucoup), et dans la plupart des cas, on voudra surement éviter de dépenser tout le courant du signal DCC au détriment des locomotives...

C’est pour cela qu’il y a 2 jeux de câbles :

  • un pour l’alimentation 16V alternatif
  • un pour le signal DCC

Assigner une adresse DCC

Pour assigner une adresse DCC, il suffit de mettre le bouton d’apprentissage à l’opposé de l’Arduino. Dans cette position, chaque fois que le décodeur voit une commande passer, il va stocker l’adresse utilisée comme étant son adresse (et va le confirmer en faisant clignoter sa led de status). Donc pour assigner une adresse DCC il suffit de :

  • pousser le bouton d’apprentissage à l’opposé de l’Arduino,
  • envoyer une commande DCC avec l’adresse souhaitée,
  • la led de statut va clignoter pour signifier qu’elle a bien vu et appris l’adresse,
  • remettre le bouton d’apprentissage vers l’Arduino

Connecter des LED

Dans le bas de la carte, il y a 3 slots pour leds. Le + est a gauche. Des résistances sont déjà prévues pour éviter de claquer les leds. Normalement vous connectez une led par slot seulement (ceci dû au fait que chaque led a une tension nominale qui varie d’une led à une autre).

Ensuite, si vous utilisez le bouton poussoir, vous allez boucler entre les 3 modes :

  • lumière constante (que ce soit allumé ou éteint),
  • grésillement/vacillement aléatoire (pour faire vieux néon d’entrepôt),
  • feux de travaux sous forme de chenillard à 3 canaux (la première lampe va s’allumer, puis la 2ème, et la 3ème, puis de nouveau la 1ère)

Il y a juste à appuyer sur le bouton poussoir pour boucler entre les 3 modes. La led de statut va vous dire dans quel mode vous êtes.

Connecter au relais

Juste a coté des slots pour LED, il y a un slot avec 3 IO. Il s’agit du relais. Les 3 IO sont : sortie A, entrée, sortie B. Donc l’IO du milieu être votre entrée (quelque soit le type "d’entrée" que vous avez), et le relais va connecter cette entrée soit sur l’IO de gauche, soit l’IO de droite.

Connecter les autres IO

En plus des led et du relais il y a des IO génériques, qui mettent à disposition :

  • le 5v et la masse de l’Arduino
  • les sorties analogiques 6 et 7 de l’Arduino
  • et les sorties numériques 6 et 7 de l’Arduino

Vous pouvez les utiliser à votre avantage, mais il faudra faire un peu de programmation. Je n’ai rien codé pour sortir un quelconque signal par ces sorties dans le programme fourni par défaut.

Assembler

Si vous voulez un décodeur tout fait, vous pouvez me contacter via Locoduino (à la fin de cet article ou via le Forum).

Dans le cas contraire, vous pouvez l’assemblez vous même. vous aurez juste besoin du circuit imprimé, et bien entendu des composants. Les fichiers gerber pour le circuit imprimé sont disponibles ici : arduinov1.2.zip (pour le code source Eagle, voir plus bas)

Pour l’assemblage complet, voici le "Bill Of Material" :

Composant
| nombre ||ref
arduino nano 1 aliexpress
bridge rectifier 1 mouser 625-B40C800G-E4
capa 330uF 1 mouser 667-EEU-FM1C331
capa 10uF 1 mouser 581-TAP106K025SCS
voltage regulator 7807TV 1 mouser 511-L7809CV
R 50 ohm 1 mouser 71-CPF150R000FEE14
relay 1 sparkfun COM-00100
diode 4004 1 mouser 512-1N4004
transistor 2n2222 1 mouser 610-2N2222
R 10k ohm 5 mouser 71-CCF50-10K
R 1k ohm 1 mouser 603-CFR-12JR-521K
diode 4148 1 mouser 512-1N4148
toggle button 1 sparkfun COM-00102
push button 1 SPARKUN COM-00097
led 1 mouser 941-C4SMFRJSCT0W0BB2
R 400 ohm 3 mouser 660-MF1/2LCT52R391J
terminal block 2 pos 8 mouser 845-30.702
terminal block 3 pos 1 mouser 845-30.703
headers 2 mouser 855-M20-7821546
high speed optocoupler 1 mouser 630-6N137

Le reprogrammer

Si vous êtes familier avec la programmation d’un Arduino, vous pouvez le reprogrammer pour faire ce que bon vous semble. Et c’est toute la beauté de la chose ! Voici les sources que j’utilise : dccduino.ino

C’est basé sur la librairie DCC de Minabay, Et donc vous allez devoir installer : http://www.mynabay.com/arduino/2-uncategorised/14-arduino-dcc-monitor (si le lien ne fonctionne pas, voir http://www.snowopolis.com/mynabay/dcc-monitor)

L’étendre

Si vous souhaitez développer votre propre décodeur DCC, je fournis aussi les sources Eagle : arduinoDcc1.2.sch et arduinoDcc1.2.brd

Adaptez comme bon vous semble ces sources pour coller à vos besoins. Je les fournis tels quels mais je peux répondre à quelques questions. Et si vous commencez à changer le layout, vous devez normalement savoir ce que vous faites, je ne pourrais surement pas vous aider à debugger si ça ne marche pas.

Licence

Le code arduino et les schemas Eagle sont sous licence GPL v2

Vous pouvez retrouver tout le code et la documentation sur github : https://github.com/nzin/arduinodcc/blob/master/LISEZMOI.md

Et vous pouvez poser des questions en bas de cet article ou sur le Forum.

29 Messages

Réagissez à « Un décodeur d’accessoire DCC versatile basé sur Arduino »

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 « Projets »

LaBox, Une Centrale DCC polyvalente et abordable (1)

LaBox, Une Centrale DCC polyvalente et abordable (2)

LaBox, Une Centrale DCC polyvalente et abordable (3)

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

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

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

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

SGDD : Système de Gestion DD (1)

SGDD : Système de Gestion DD (2)

SGDD : Système de Gestion DD (3)

La PWM : Qu’est-ce que c’est ? (1)

La PWM : Qu’est-ce que c’est ? (2)

La PWM : Qu’est-ce que c’est ? (3)

La PWM : Qu’est-ce que c’est ? (4)

Mise en oeuvre du Bus CAN entre modules Arduino (1)

Mise en oeuvre du Bus CAN entre modules Arduino (2)

Un gestionnaire en C++ pour votre réseau (1)

Un gestionnaire en C++ pour votre réseau (2)

Un gestionnaire en C++ pour votre réseau (3)

Un gestionnaire en C++ pour votre réseau (4)

Réalisation de centrales DCC avec le logiciel libre DCC++ (1)

Réalisation de centrales DCC avec le logiciel libre DCC++ (2)

Réalisation de centrales DCC avec le logiciel libre DCC++ (3)

Contrôleur à télécommande infrarouge pour centrale DCC++

Gestion d’une gare cachée (1)

Gestion d’une gare cachée (2)

Gestion d’une gare cachée (3)

La carte Satellite V1 (1)

La carte Satellite V1 (2)

La carte Satellite V1 (3)

La carte Satellite V1 (4)

La carte Satellite V1 (5)

Chenillard de DEL

Enseigne de magasin

Feux tricolores

Multi-animations lumineuses

L’Arduino et le système de commande numérique DCC

Un décodeur d’accessoire DCC versatile basé sur Arduino

Un moniteur de signaux DCC

Une barrière infrarouge

Un capteur RFID

Un TCO xpressnet

Une animation sonore

L’Arduino au coeur des systèmes de pilotage analogiques ou numériques

Calcul de la vitesse d’un train miniature avec l’Arduino

La génèse d’un réseau 100% Arduino

Une horloge à échelle H0

Simulateur de soudure à arc

Un automatisme de Passage à Niveau

Automatisation du pont FLEISCHMANN 6152 (HO) avec un ESP32 (1)

Identifier et localiser vos trains avec le RFID/NFC et un bus CAN.

Etude d’un passage à niveau multivoies

La rétro-signalisation sur Arduino

Décodeur pour aiguillage à solénoïdes sur Arduino

Un décodeur DCC pour les signaux à deux ou trois feux sur Arduino NANO/UNO

Etude d’un passage à niveau universel

Réalisation pratique d’un système de mesure de vitesse à l’échelle N

Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation

Un décodeur DCC pour 16 feux tricolores

Block Automatique Lumineux avec la carte shield "Arduino 4 relays"

Réalisation d’un affichage de gare ARRIVEE DEPART

Ménage à trois (Ordinateur, Arduino, réseau)

Réalisation d’un va-et-vient automatique et réaliste

Souris et centrale sans fil

Communications entre JMRI et Arduino

Annonces en gare avec la RFID

Une croix de pharmacie animée avec Arduino UNO

Réalisation d’un wagon de mesure (distance et vitesse)

Passage à niveau géré par Arduino (1)

Passage à niveau géré par Arduino (2)

Passage à niveau géré par Arduino (3)

Passage à niveau géré par Arduino (4)

Passage à niveau géré par Arduino (5)

Une manette simple et autonome pour LaBox

Éclairer le réseau (1)

Éclairer le réseau (2)

Block Automatique Lumineux à 8 cantons analogiques

Un décodeur DCC pour les plaques tournantes Fleischmann et Roco

Éclairer le réseau (3)

Éclairer le réseau (4)

Éclairer le réseau (5)

JMRI pour Ma première centrale DCC

Rocrail pour Ma première centrale DCC

CDM-Rail pour Ma première centrale DCC (1)

CDM-Rail pour Ma première centrale DCC (2)

Banc de test pour les décodeurs DCC

Ma première manette pour les aiguillages DCC

Mon premier décodeur pour les aiguillages DCC

Boitier 3D pour la station DCC minimale

Va-et-vient pour deux trains

Un programme pour régler facilement les servos moteurs avec un ESP32

Affichage publicitaire avec Arduino (1)

Affichage publicitaire avec Arduino (2)

TCO Web interactif avec des ESP32 et des ESP8266 (1)

TCO Web interactif avec des ESP32 et des ESP8266 (2)

TCO Web interactif avec des ESP32 et des ESP8266 (3)

TCO Web interactif avec des ESP32 et des ESP8266 (4)

TCO Web interactif avec des ESP32 et des ESP8266 (5)

Les derniers articles

LaBox, Une Centrale DCC polyvalente et abordable (3)


Thierry

LaBox, Une Centrale DCC polyvalente et abordable (1)


Thierry

LaBox, Une Centrale DCC polyvalente et abordable (2)


Dominique, msport, Thierry

Un programme pour régler facilement les servos moteurs avec un ESP32


bobyAndCo

TCO Web interactif avec des ESP32 et des ESP8266 (5)


utpeca

TCO Web interactif avec des ESP32 et des ESP8266 (4)


utpeca

TCO Web interactif avec des ESP32 et des ESP8266 (3)


utpeca

TCO Web interactif avec des ESP32 et des ESP8266 (2)


utpeca

TCO Web interactif avec des ESP32 et des ESP8266 (1)


utpeca

Affichage publicitaire avec Arduino (2)


catplus, Christian

Les articles les plus lus

Réalisation de centrales DCC avec le logiciel libre DCC++ (3)

La PWM : Qu’est-ce que c’est ? (1)

Mon premier décodeur pour les aiguillages DCC

La rétro-signalisation sur Arduino

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

Réalisation de centrales DCC avec le logiciel libre DCC++ (1)

Chenillard de DEL

Mise en oeuvre du Bus CAN entre modules Arduino (2)

LaBox, Une Centrale DCC polyvalente et abordable (1)

Réalisation d’un va-et-vient automatique et réaliste