Un décodeur d’accessoires universel (2)
. Par : Thierry
Vous répondez à :
Bonjour,
Je viens de tout préparer et pour faire un test j’ai appliqué le DCC_Monitor sur mon Uno, et la rien.
Je suis à l’échelle G ce qui signifie que la tension est de 20V. La sonde DCC est elle prévue pour cette tension ?
Par ailleurs j’ai eu une erreur de compilation avec le type prog_char. J’ai trouvé une explication liée au nouveau compilateur de l’IDE 1.7. Il est conseillé sur un forum de remplacer par le type char.
Je n’ai plus d’erreur de compilation mais l’absence de trame dcc ne pourrait il pas venir de cette modification.
Le programme tourne, mais même si je génère des trames DCC (aiguillage ou locomotive) je ne voie rien passer sur le monitor série.
Qu’en pensez vous ?
20 Messages
-
Un décodeur d’accessoire universel (2) 20 janvier 2015 15:01, par Philippe
Bonjour,
Tout d’abord merci pour vos articles et votre bibliothèque. J’aurai une question à vous poser. Sur quelles PINs de l’Arduino doit on connecter le signal DCC venant de la centrale digitale.
Cordialement
Philippe-
C’est effectivement une question pertinente à laquelle le troisième et dernier volet de la série répondra. Si vous voulez prendre de l’avance, le numéro de pin, dépend de ce que vous avez donné dans votre sketch avec un #define kDCC_INTERRUPT, et de votre version d’Arduino. Je vous conseille d’aller voir le site mynabay pour de plus amples informations… Ou d’attendre un peu la publication du troisième volet qui ne devrait pas trop tarder : il est déjà en cours de validation.
-
En passant : il ne faut surtout pas connecter directement le signal DCC à l’Arduino. Il grillerait à coup sûr. Il faut utiliser un optocoupleur
1N6376N137. Le schéma est ici : http://www.mynabay.com/dcc-monitor/...-
Bonjour,
Je viens de tout préparer et pour faire un test j’ai appliqué le DCC_Monitor sur mon Uno, et la rien.
Je suis à l’échelle G ce qui signifie que la tension est de 20V. La sonde DCC est elle prévue pour cette tension ?Par ailleurs j’ai eu une erreur de compilation avec le type prog_char. J’ai trouvé une explication liée au nouveau compilateur de l’IDE 1.7. Il est conseillé sur un forum de remplacer par le type char.
Je n’ai plus d’erreur de compilation mais l’absence de trame dcc ne pourrait il pas venir de cette modification.Le programme tourne, mais même si je génère des trames DCC (aiguillage ou locomotive) je ne voie rien passer sur le monitor série.
Qu’en pensez vous ?
-
Bonjour
Pour les qualités du 6N137, je laisse les spécialistes des datasheets répondre. Tout ce que je peux dire, c’est que c’est le modèle recommandé par Mynabay, et que lui fait du HO, donc entre 14 et 18v…
Le prog_char a effectivement été supprimé en 1.5 et suivants. Il faut bien utiliser char.
Enfin pour le moniteur série deux remarques. D’abord, vérifiez bien que vous l’avez passé en 115200 bauds. C’est la valeur utilisée par UAD pour les messages série. D’autre part, il n’y a rien sur ce moniteur si vous n’êtes pas en mode DEBUG. Pour ça, enlever les caractères ’//’ présents au début de UniversalAccessoryDecoder.h devant ’#define DEBUG_MODE’ .-
Merci pour votre retour rapide !
Je me suis peut être mal exprimé. Il y a bien un affichage sur le monitor série. Mais il m’affiche qu’il n’a lu aucune trame !
Pour information j’utilise un Arduino Uno r3 et DCC_Decoder Library Version 4.
-
-
La contrainte sur le 6N137 est de ne pas dépasser 50mA. Ici on a 20V/1kΩ = 20mA, donc pas de soucis.
-
La dernière IDE est l’IDE 1.6.3
-
En fait le dernier IDE est le 1.7.1 disponible sur arduino.org. Comme je suis tout nouveau dans le monde Arduino j’ai acheté la dernière version de la carte UNO en r3 et le kit français officiel comprennant aussi une carte UNO R3. Et vous avez une notification pour télécharger l’IDE sur le site arduino.org (que j’ai pas lu en détail car j’avais déjà téléchargé la dernière version à partir du site arduino.cc et que le ".org" sur l’étiquette n’était pas franchement visible). Quand vous utilisez l’IDE du site de arduino.cc vous avez une notification vous indiquant que la carte utilisée n’est pas certifiée (port COM). Comme je débutais je voulais une carte certifiée (et pas une copie) et du coup j’ai cherché sur Internet s’il y avait une arnaque. Et comme l’étiquette collée sur la carte Arduino il est recomandé de télécharger l’IDE 1.7.x sur arduino.org.
Je vais donc installer l’ancien IDE 1.6.3 sur un autre poste pour faire le test (car j’ai lu qu’une fois installé en 1.7 on pouvais pas revenir en version 1.6.x).
Par ailleurs, dans mes recherches sur le datasheet du 6N137 j’ai observé que placer l’interface 7 à low, la réponse en 6 était toujours High (quelque soit l’état de la l’émetteur entre 2 et 3). Du coup j’ai trouvé aussi un schéma (plus complexe mais du même auteur) ou l’interface 7 était portée au 5V. Quand j’ai fait des tests avec un petit programme qui détecte le changement d’état dans la loop, j’ai bien vu une différence en utilisant une sources DC 20V en entrée du montage.
Pour autant, le progamme compilé en IDE 1.7.0 n’est toujours pas opérationnel !
Prochains essais ce soir (avec l’IDE 1.6.3) !
Félicitation pour votre site et votre réactivité !!!
A suivre …
-
L’histoire de 1.6.3 ou 1.7 est plus compliquée qu’elle n’y parait. C’est bien la version 1.6.3 qui est la version officielle téléchargeable sur le site arduino.cc, lui aussi officiel. Arduino.org est un fork créé par un ancien du groupe Arduino et qui compte se faire de l’argent avec une nouvelle version matérielle : l’Arduino Zero. La raison d’être de la version 1.7 est la possibilité de créer des programmes pour ce Zero, ce qui n’est pas possible avec la 1.6.3.
Je pense que le mieux pour l’instant est de rester sagement sur le site officiel et OpenSource, arduino.cc et donc de rester avec la 1.6.3 et ses successeurs. Attendons de voir ce qu’il advient de arduino.org, au delà du plagiat évident du design du site, de la tentative de récupération du nom et du copyright et de leur nouvel Arduino… A moins bien sûr que ce ne soit effectivement le Zero que vous avez commandé !-
Pour préciser, cette nouvelle carte non officielle est la Zero Pro qui est vendue fort cher. Il existe une Zero tout court officielle mais qui n’est pas encore sortie.
-
-
Le fait est que la carte Uno que vous avez n’est pas d’origine Arduino officiel (arduino.cc) mais un clone fait par arduino.org. Les deux cartes ont donc des vendor id (USB) différents d’où l’alerte émis par l’IDE Arduino officielle 1.6.3. Ça n’empêche en rien le fonctionnement ceci dit.
Une bataille juridique est en cours.
-
Bonsoir,
Une fin heureuse …Après moult péripéties le décodeur fonctionne enfin.
Mon problème était lié aux 6N137. Il semble que les 5 CI commandés avec ma carte Arduino Uno.org doivent avoir des spécifications différentes (ou peut être un défaut de fabrication). Après des tests sur les différents IDE, des tests pour valider le fonctionnement de l’interruption lié à la pin 2, les résultats convergeaient vers un défaut du CI. J’ai monté une DEL en sortie du CI et en entrée un poussoir sur le 5V (sur la base d’un schéma sur un datasheet) et elle ne répondait pas quand le poussoir était pressé. J’ai trouvé ce soir un détaillant qui en disposait en stock de 6N137 (d’un autre constructeur). Et miracle cela fonctionne enfin (du premier coup).
Alors pour les débutants comme moi, je témoigne que l’arduino uno.org et l’IDE 1.7.0 fonctionne bien avec le module de lecture DCC décrit sur le site de mynabay avec une centrale Massoth en 20V.
Pour la petite histoire, j’en veux à Lextronic pour m’avoir vendu des Arduino.org pour des originaux mais aussi de m’avoir fourni les 5 x 6N137 défectueux qui m’ont fait perdre plusieurs soirées à me demander ce qui n’allait pas.
Merci encore pour vos remarques qui m’ont permis de comprendre un peu mieux le monde arduino. Je m’enthousiasme à nouveau pour les possibilités de l’arduino pour le modélisme ferroviaire.
-
Bravo. C’est un encouragement pour ceux qui galèrent avec ce composant. Pouvez vous donner l’adresse de ce datasheet afin de permettre à d’autres de reproduire ce schéma (comme moi par exemple qui a pas mal tâtonné au début avec mon pack de 6N137…) ?
C’est aussi un bon message sur la persévérance dont nous devons faire preuve pour résoudre ces petits problèmes rageants qui ne doivent pas nous détourner de notre but principal : faire tourner nos trains ! -
Bonjour,
Quel est le fabricant des composants qui ne fonctionnent pas comme prévu ?
J’ai jeté un œil à la datasheet et à mon avis, s’agissant d’un optocoupleur actif, il faut mettre une capa de 100nF sur son alimentation. Ce n’est pas sur le schéma de Mynabay et c’est un tort.
-
-
-
-
-
-
-
-
-
Un décodeur d’accessoire universel (2) 20 janvier 2015 19:35, par Philippe
Merci pour vos réponses. Je vais donc attendre avec impatience ce troisième volet.
-
Un décodeur d’accessoire universel (2) 3 février 2015 23:05, par fandeloco
Bonjour,
Le site mynabay parle d’un optocoupleur 6N137 plutôt que 1N637 (les références en 1Nxxx sont pour les diodes)
Cordialement
-
Exact, c’est une typo :) c’est bien 6N137. Lien chez TME
Cordialement.
-
-
Un décodeur d’accessoires universel (2) 27 janvier 2016 07:45, par cardon samuel
Bonjour,
Je n’arrive pas à comprendre ce qu’est concrètement de "code DCC 316/0" ? Est ce que cela veut dire que sur ma centrale (multimaus) si je prend l’aiguillage à l’adresse 316 et que je clique sur le bouton droit l’arduino fera bouger le servo branché sur la pin 2 ? Et qu’ensuite si je clique sur le bouton dévié l’arduino fera bouger le servo de la pin 2 dans l’autre direction ?
J’avais bien compris la version 3 de UAD (discutiion du le forum du N) mais il n’y avait pas cette notion de commander et de code DCC.
-
Un décodeur d’accessoires universel (2) 27 janvier 2016 09:18, par Thierry
C’est presque ça. Dans mon exemple j’ai utilisé le code DCC comme une bascule. Cela signifie qu’à chaque appui sur le bouton de l’accessoire 316, il changera de sens. Le zéro désigne l’un des boutons du contrôleur. Selon le modèle, le code généré par les boutons est différent, mais je suppose que le bouton gauche est ’0’ et celui de droite ’1’… C’est le cas sur ma MS2, c’est à vérifier avec la Roco.
Les Commanders sont là pour virtualiser la commande des accessoires et par exemple permet de remplacer facilement un bouton poussoir par une commande DCC ou inversement sans toucher à la déclaration ou au fonctionnement des accessoires eux-mêmes. Cela permettra aussi dans un futur plus ou moins proche d’utiliser un bus Can ou autre pour cette commande…