Un décodeur d’accessoire DCC versatile basé sur Arduino
. Par : Nicolas Zin
Vous répondez à :
Bonjour Nicolas ,
je serai intéressé par deux circuits imprimés , je ferai les montage moi même , où peut-on les trouver ?
merci d’avance pour la réponse
Gilles
29 Messages
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 5 octobre 2015 10:30
Joli projet !
Mais le lien vers la lib semble mauvais (404)...Michel
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 5 octobre 2015 13:41, par Nicolas Zin
Effectivement, la librairie a changé d’adresse apparemment.
J’ai écrit au webmestre pour savoir ou était passé la librairie :-( -
Un décodeur d’accessoire DCC versatile basé sur Arduino 5 octobre 2015 15:55, par Pierre GRAFTIEAUX
Bonjour Nicolas,
Bien que je sois en trois rails et donc protocole Motorola, ma centrale station Märklin est multi protocole.
Donc je peux insérer des décodeurs DCC dans mon réseau.
J’ai simplement une question pratique :
Sauf erreur de ma part l’arduino que tu utilise comporte 14 E/S numérique et 8 E/S analogique (utilisable en numérique).
Ton circuit permet de "commander" 4 sorties (3 leds et 1 relais).
Et pour gérer le tout tu utilises 2 entrées et 1 sortie.
Est-ce concevable de faire plus et ainsi utiliser la plupart des E/S de l’arduino ?
Merci.
Pierre -
Un décodeur d’accessoire DCC versatile basé sur Arduino 5 octobre 2015 19:01
Yeap,
2 choses :
- il y a deja des IO supplementaires utilisables sur mon circuit (A6,A7,D6,D7), donc si tu as besoin de faire juste "un peu plus" tu peux taper dessus.
- mais si ton but est d’utiliser le maximum de portes, tu vois qu’effectivement sur le schema logique (https://raw.githubusercontent.com/n...), il y a pas mal de pates qui ne sont pas utilisees (des IO analogiques et numeriques). Donc oui tu peux "etendre" ou modifier mon projet pour l’adapter a tes besoins. Apres tout, le plus dur (l’etage d’alimentation, et l’etage de decodage) est deja fait. Peut etre revoir l’etage d’alimentation si tu alimentes d’autres elements (mettre une capa plus importante).
Nicolas
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 6 octobre 2015 08:35, par Gilles29
Bonjour Nicolas ,
je serai intéressé par deux circuits imprimés , je ferai les montage moi même , où peut-on les trouver ?merci d’avance pour la réponse
Gilles
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 6 octobre 2015 14:40
Bonjour Gilles,
je t’ai envoye un email a cette fin.
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 12 octobre 2015 09:03, par Dan57FRN
Bonjour, je serais intéressé par 5 circuits imprimés également
Avez-vous la possibilité de les fournir
Merci encore pour ce projet très intéressant -
Un décodeur d’accessoire DCC versatile basé sur Arduino 12 octobre 2015 11:34, par jean
Bravo pour cette réalisation.
Pouvez vous indiquer le coût global ? -
Un décodeur d’accessoire DCC versatile basé sur Arduino 12 octobre 2015 15:20
Bonjour Dan57FRN,
je n’ai malheureusement plus d’echantillon (pour le moment), mais de toute facon pour 5, tu as tout interet a les commander toi-meme.
Je passe par iteadstudio : http://www.itead.cc/open-pcb/pcb-pr...
C’est vraiment pas cher : 15$ (+shipping) pour 10 PCB.
Si tu as des questions sur comment les commander (ou le zip a envoyer) ecris moi : nicolas.zin@gmail.com -
Un décodeur d’accessoire DCC versatile basé sur Arduino 12 octobre 2015 15:26
Bonjour Jean,
pour le cout global, sans le cout du PCB, j’en ai eu pour 31$ de composants (par decodeur evidemment) (+cout de shipping). Je peux t’envoyer le detail si tu veux.
Pour les PCB comme indiqué plus haut, il y en a pour 15$ en ce moment (+shipping) pour 10 PCB.Bref, si tu trouves dans le commerce un décodeur qui fait exactement ce que tu veux, ma solution n’est pas compétitive, mais ce n’est pas le but.
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 13 octobre 2015 00:02, par Samuel anzalone
Bonjour
Bravo pour cette superbe réalisation.
Je voudrai vous en acheter deux.
Merci de m’indiquer la procédure à suivre.Bien cordialement
Sam
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 14 octobre 2015 01:47
Bonjour Sam,
je n’en ai plus en ce moment malheureusement.
Est ce que tu souhaites plutot commander les pcb directement chez Iteadstudio. Je peux t’aider pour ca si tu veux.Ecris moi directement : nicolas.zin@gmail.com
Nicolas
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 2 novembre 2016 21:18, par Loco28
Bonsoir,
A la date d’aujourd’hui, où puis je trouver la bibliothèque comprenant DCC_Decoder.h ? -
Un décodeur d’accessoire DCC versatile basé sur Arduino 2 novembre 2016 23:17, par Dominique
Facile :
C’est écrit dans l’article de Nicolas, mais un petit rappel ne nuit pas !
Voir en ligne : https://github.com/MynaBay/DCC_Decoder
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 17 décembre 2017 11:10, par hallucine
Bonjour,
Le lien vers les 2 fichiers arduinoDcc1.2.sch et arduinoDcc1.2.brd renvoient une erreur 404. Serait-il possible d’avoir les fichiers ? Merci -
Un décodeur d’accessoire DCC versatile basé sur Arduino 17 décembre 2017 13:32, par Nicolas Zin
Bonjour,
effectivement j’ai mis a jour, et je suis a la version 1.3
Va sur la page https://github.com/nzin/arduinodcc/ directement. tu verras les bon liens -
Un décodeur d’accessoire DCC versatile basé sur Arduino 23 avril 2018 19:22, par Remi
Bonjour Nicolas,
j’ai réalisé ce décodeur et les diodes fonctionnent comme vous l’avez décrit selon 3 modes différents.
Q1 : Je voudrai savoir si il est possible de commander chaque diode de façon individuelle (on / off) et si cela est inclus dans le programme ?
Q2 : Pour la commande du relais, suffit il de donner l’adresse par la centrale pour provoquer le changement d’état de celui-ci ?
Je débute sur arduino et je n’ai sans doute pas tout compris !
Merci de votre compréhension. -
Un décodeur d’accessoire DCC versatile basé sur Arduino 24 avril 2018 00:15, par Nicolas Zin
Bonjour Remi !
Q1 : Je voudrai savoir si il est possible de commander chaque diode de façon individuelle (on / off) et si cela est inclus dans le programme ?
Ce n’est PAS inclu dans le programme. Mais si tu sais programmer en C, ce n’est pas tres compliqué : une facon de faire par exemple serait de ne pas toucher a la partie "apprentissage de mon adresse" (ligne 128 a 132), mais par contre, faire en sorte que si on recoit une instruction pour "myaddress" on allume/eteint LIGHT0, si on recoit pour "myaddress+1", on allume/eteint LIGHT1,... (ligne 134 a 139 + avoir une variable "switchStatus" par led/relai)
Bref faut changer la logique, mais ce n’est pas tres compliqué (normalement)
Q2 : Pour la commande du relais, suffit il de donner l’adresse par la centrale pour provoquer le changement d’état de celui-ci ?
Oui. Une fois que l’arduino a une adresse, une commande lui ordonne d’activer/eteindre les leds ET le relai (sur la meme adresse).
Tu devrais entendre unc petit "clac" quand tu active/desactive le relai.
Tiens moi au courant de ces avancées :-)
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 25 avril 2018 12:42, par Remi
Bonjour Nicolas,
Pour visualiser l’état du relais, j’ai remplacé celui-ci par une Led. Celle ci reste allumée en permanence même si je modifie l’adresse !!!
Je pense que j’ai un problème d’inclusion des bibliothèques.Q1 : Doit on ou non inclure les bibliothèques DCC car lors du chargement du programme, il y a déjà les onglets correspondants ?
Q2 : Si l’on charge les bibliothèques, le lien situé 4 messages au dessus est il le bon ? J’ai essayer et cela me donne plein d’erreur de compilation. ci dessous un exemple du début des erreurs !
*******
libraries\DCC_Decoder\DCC_Decoder.cpp.o (symbol from plugin) : In functionDCC_Decoder::State_Reset()': (.text+0x0): multiple definition of
DCC_Decoder::State_Reset()’
sketch\DCC_Decoder.cpp.o (symbol from plugin) :(.text+0x0) : first defined here
libraries\DCC_Decoder\DCC_Decoder.cpp.o (symbol from plugin) : In functionDCC_Decoder::State_Reset()': (.text+0x0): multiple definition of
DCC_Decoder::func_DecodingEngineCompletion’
sketch\DCC_Decoder.cpp.o (symbol from plugin) :(.text+0x0) : first defined here
***********Je suis un peu perdu avec ce comportement.
D’avance, merci pour la réponse
Cordialement
Rémi -
Evolution sévère de la carte ! 25 décembre 2018 22:58, par Cedric
Bonjour,
Je trouve votre réalisation vraiment bien, un grand bravo.
Cela me donne plein d’idées et autant côté soft je me débrouille que côté design PCB, je rame beaucoup.
J’aimerai modifier la carte pour l’alimenter directement en 12V, puis piloter 4 servo (j’ai besoin des connecteurs 4x3pins 0/5V/pulse), détecter 2 cantons, et communiquer en CAN. Rien que ça.Comme je construit un nouveau réseau, j’aurai souhaité faire tirer par un pro (genre jlcjcb, le prix est modique) une dizaine de PCB comme celle-ci afin d’en mettre une par module.
Personne n’aurait déjà fait un tel travail ? Il n’y aurai pas une âme charitable qui maitrise à fond Eagle pour me faire cette carte magique en 10 min ?
Merci d’avance et encore bravo à Nicolas pour cette réalisation.
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 26 décembre 2018 10:38
Salut,
Le premier point c’est de voir avec un Arduino Nano, s’il y a assez de place pour ce que tu veux faire.
Si tu regardes un schéma (https://www.likecircuit.com/wp-cont...), il y a 19 I/O.
J’en utilise- 1 pour lire le signal DCC
- 1 pour le bouton (bon c’est pas obligatoire)
tu souhaites en utiliser :
- pour le CAN, il faut apparemment utiliser 5 IO (cf https://www.locoduino.org/spip.php?...)
- pour détecter 2 cantons (donc 2 IO)
- pour piloter 4 servo, donc 4 IO ?
Les 0 et 5 V, tu dois pouvoir les mutualiser, mais comme tu veux commander des servo, le 5 V ne doit pas venir de l’Arduino, mais du bloc d’alimentation au dessus (car l’Arduino ne peut sortir qu’une faible intensité : 40 mA par IO, et max 200 mA de mémoire)
Bref, faudrait :
- pour le CAN, tu veux passer par un module externe qui utilise le SPI ?
- pour la détection de canton tu comptais faire ca comment ? (la detection par passage de courant, c’est pas génial : ca "bouffe" 0.7V, peut etre que tu veux regarder par "induction" ?)
- pour piloter tes servos, tu sais comment tu veux faire ca ? du PWM par un IO analogique ???
a+
-
Salut,
Merci pour ta réponse et pour tes questions pertinentes.
Voici ce que j’avais en tête :
Pour le CAN, il faut en effet 5 pin. Je pensais utiliser la carte suivante donc j’imaginais aligner les connecteurs sur le PCB a réaliser afin d’embrocher la carte telle quelle (façon carte d’extension que l’on met ou pas).Pour le nombre d’IO, c’est en effet un problème et je pensais étendre l’UNO avec un MCP23017 ce qui permet d’ajouter 16 I/O. Le composant communique en I2C, il faut donc prévoir son alimentation électrique par le +5V/GND ainsi que la liaison I2C.
Pour la détection de canton, je vois régulièrement des montages à base d’optocoupleur 6N137 ou 4N35 (je ne connais pas trop la différence). L’idéal serait de trouver un composant avec 2 ou 4 opto ou alors multiplier ces composants par 2 ou 4 tant qu’on y est. Ces détections pourraient typiquement aller sur l’extension MCP23017. Il faudra prévoir une borne entrée/sortie par détection de canton (x4). Par induction, je ne vois pas à quoi tu penses ? Genre ILS ? Je ne suis pas fan si c’est le cas. La détection de courant bien qu’elle fasse perdre un peu de tension me semble suffisamment répandu pour être fiable. Connais-tu une meilleure solution ?
Pour les servos, il y a en effet la problématique d’alimentation. Je prévois d’amener sur la carte du 12VDC mais du coup il faudrait faire un 5V en local avec un convertisseur DC/DC ou alors un 7805. Mes moteurs d’aiguillage seront des servos SG90. Ils se commandent donc avec une entrée PWM et cela nous limitera aux pins PWM de l’UNO (3/5/6/9/10/11 sachant que comme il y aura du SPI et de l’I2C, cela restreint aux pins 3/5/6/9).
J’aime beaucoup dans le circuit présenté le côté polyvalence mais là c’est vrai que j’aimerai beaucoup l’étendre pour répondre à toutes les problématiques que l’on rencontre sur un module. Par exemple la sortie relais est excellente et il faut la maintenir. Pour les 3 LED c’est top aussi mais si on ajoute le MCP23017, on peut aller piloter beaucoup plus de LED afin de piloter les feux de signalisation par exemple. Il serait bien alors de prévoir une résistance pour chaque sortie restante (que l’on adaptera selon la LED) et un bornier comme cela est déjà fait pour les 3 existantes. On pourrait aussi prévoir des entrées sur borne genre 1 ou 2. Cela permettrait d’acquérir un peu n’importe quoi comme un fin de course.
La contrainte aussi serait d’avoir un PCB inférieur à 10cmx10cm. C’est pour une histoire de prix, JLCPCB applique des prix modiques pour les PCB inférieurs à cette taille mais les prix s’enflamment au delà. J’ai déjà essayé de fabriquer 10 PCB chez eux, le résultat est vraiment top !
Cela représente donc pas mal de boulot à faire sous Eagle car il faut distribuer les polarités, placer les composants, le routage, etc. et si on ne maitrise pas le truc, cela semble très chaud.
Si tu pouvais m’aider cela serait vraiment top :).
-
Bonjour,
Je vais tordre le cou directement à une légende qui a l’air de traîner ici ou là : il n’est pas nécessaire de brancher un servo sur une sortie PWM de l’Arduino. Les PWM engendrées par la bibliothèque Servo sont faites logiciellement et sont applicables sur n’importe quelle sortie numérique.
-
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 29 décembre 2018 14:21, par Nicolas Zin
Salut,
peut etre pour etre plus rapide, tu pourrais m’ecrire sur mon email gmail (et surtout chatter par hangout ?), mais peut etre que d’autres sont intéressés pour suivre le fil.
On peut essayer de faire un premier schema avec Eagle pour y voir plus clair (pour les I/O)Premiere chose : ma carte comprend un étage d’alimentation, qui prend de l’alternatif (ou du continu), idéalement du 16V (dans le détail, ca doit etre du min 13V, max 36V avec le composant que j’utilise), tu peux reprendre le schema pour du 12VDC (et limite le simplifier) : ca te permet d’avoir du 12VDC d’une part, et j’utilise un convertisseur DC-DC pour alimenter en 9VDC l’arduino nano (il faut l’alimenter minimum en 7V). Bref tout est là je crois. (au début j’utilisais un 7805, mais ca chauffait trop, je te conseille d’éviter le 7805, si ton budget te le permet. J’utilise des alim a decoupage (cf mouser 490-V7809-1000 par exemple)
Pour la détection de Canton, j’ai un ami qui fait ca par induction (avec une bobine), lis donc http://jurasecondairen.blogspot.com.... Ca a le GROS avantage, de ne pas provoquer de perte de voltage (comme avec l’optocoupleur). Perso, j’ai eu des problèmes de fuites de courant avec les optocoupleurs : j’avais mis certains rails derrière des détecteurs de courant, et d’autres non. Quand la locomotive passait, et qu’elle chevauchait 2 zones, elle était alimentée d’un coté par du 12V, et de l’autre du 11.3V, ca provoquait des trucs bizarres, et certaines composants électroniques n’ont pas aimé. Bref, je ne suis pas fan.
Pour le CAN, ca doit pouvoir se faire, faudrait tester sur une plaque à bidouille ;-) :
- mettre le INT du CAN sur le INT0
- mettre le INT de la détection de signal DCC sur le INT1 (et changer la ligne https://github.com/nzin/arduinodcc/...)
Pour les servos, je pense que tu maitrises mieux que moi
et pour le reste (les LEDs), arrivé là : oui peut etre un multiplexeur, ou bien un autre décodeur d’accessoire ? (j’en ai fait un juste pour 8 LEDs, sans relai : https://github.com/nzin/arduinodcclight)
a+
Nicolas
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 29 décembre 2018 18:16, par Dominique
-
Merci Dominique pour ce lien vers votre belle réalisation.
C’est un beau travail qui ressemble en effet à mon cahier des charges mais en plus petit. Cela imposerait de bien multiplier les modules et donc les coûts ainsi que les pannes.
J’ai pas mal de question du coup :Comment avez-vous fait les détecteurs de canton ?
Comment alimentez-vous les servis ? Je ne vois pas d’alim 5V en dehors de celle fournie par le Uno.
Comment sont-faites les barrières ? Il me semble que ce n’est pas à base de servo quand je vois le nombre de pin. A moins que la zone "connecteur barrière" ne correspondent qu’aux détecteurs de présence.Merci Dominique et Nicolas
-
Bonsoir Cédric,
- Comment avez-vous fait les détecteurs de canton ?
Ce sont des détecteurs de consommation classiques. Mais on explorera les bobines prochainement. Cela ne pose pas de problème en fait car tous les cantons sont alimentés à travers un pont de diode d’un détecteur donc c’est équilibré. - Comment alimentez-vous les servos ? Je ne vois pas d’alim 5V en dehors de celle fournie par le Uno.
Dans cette version V1 il n’y a qu’un seul servo et le 9V alimentant la carte est régulé à 5V et alimente tout. Dans le futur on mettra plus de courant en cas de servos multiples - Comment sont-faites les barrières ? Il me semble que ce n’est pas à base de servo quand je vois le nombre de pin. A moins que la zone "connecteur barrière" ne correspondent qu’aux détecteurs de présence.
Les 2 connecteurs barrière sont faits pour des détecteurs ponctuels (zones d’arrêt devant signaux) actifs bas comme des barrières IR ou des capteurs a effet Hall (ce qu’on a mis à Orléans). Le détecteur de présence est inclu dans la carte.
Il y a pas mal de possibilités de mixage des fonctions seulement limitées par les ports du Nano.
On devrait continuer cette discussion sur le Forum, ici
- Comment avez-vous fait les détecteurs de canton ?
-
-
-
Un décodeur d’accessoire DCC versatile basé sur Arduino 2 juin 2022 14:47, par seigneurin
Bonjour, nous sommes en 2022 et depuis vos bibliothèques on disparues, je suis totalement novice en arduino mais très intéressé par ce sujet, il faudrait remettre a jour vos projets qui sont vraiment intéressant et facile a réaliser , le point noir pour moi c’est les bibliothèques.
bien a vous
Richard -
Un décodeur d’accessoire DCC versatile basé sur Arduino 2 juin 2022 15:03, par Nicolas Zin
Bonjour Richard,
euh, comment ca, mes bibliothèques ont disparu ?
Vous n’arrivez pas à accéder à https://github.com/nzin/arduinodcc?Qu’est ce qui a disparu ?