![]() |
La gare de Lormedy |
H0 |
DCCpp pour Arduino
Après avoir parcouru Internet et analysé de nombreuses conceptions faites par des amateurs éclairés dont certaines sont décrites sur
Locoduino, je porte mon choix sur DCC++ et plus exactement sur la bibliothèque
DCCpp pour Arduino.
Celle-ci permet de piloter plusieurs locos simultanément, en adresse courte, longue et UM, offre une sortie DCC vers les voies principales et une sortie DCC vers une voie de programmation indépendante.
La commande se fait par l'intermédiaire de fenêtres sur l'écran du PC/Tablette/Smartphone et du port COM ou Ethernet vers l'Arduino (avec l'ajout d'une carte interface Ethernet).
Simultanément vous pouvez utiliser des tablettes ou des Smartphones en WIFI avec une Box Internet qui sert de routeur WIFI, en même temps qu'un PC.
J'utilise un Arduino MEGA 2560 sur lequel je place une carte fille pour câbler
un driver RS485/7, SN75LBC176 ou AM26C31 qui transforme la sortie PWM en 2 polarités inverses afin d'alimenter le module Booster L298N.
L'Arduino est connecté par USB au PC. Cela suffit pour l'alimenter en 5VDC mais si nécessaire un chargeur 7,5VDC alimente la carte Arduino.
Une alim 19VDC plus puissante alimente les Booster L298N qui fournissent le DCC, lesquels alimentent les rails. J'ajoute des modules MAX471 pour mesurer le courant sur le 19VDC.
La réalisation est possible avec un Arduino UNO ou NANO et coûte 10 € environ, hors alimentation et boitier et à peine plus cher avec un Arduino MEGA.
Coté pratique vous devrez connecter quelques fils et percer quelques trous pour assembler tous les éléments avec des vis afin de les solidariser ensemble.
Tout ce materiel est en vente sur les sites de vente en ligne chinois pour quelques Euros. ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Le Max471 ou équivalent mesure le courant continu qui alimente le Booster reflétant ainsi la consommation électrique du réseau DCC. Attention : Beaucoup de MAX471 sont défectueux. Avant de les connecter, vérifier avec un multimètre que la résistance lue entre RS+ et RS- soit proche de zéro Ohms. Sinon vous risquez d'endommager le MEGA. Une solution de remplacement est à l'étude.
Plus 2 connecteurs RJ45 pour le bus S88-N :
Adieu aux forêts de fils qui partent de l'Arduino, un simple câble RJ45 suffit. Les infos des capteurs seront rassemblées sur place par une carte de rétro-signalisation puis transmises par le câble RJ45 vers la carte suivante et ainsi de suite le long du réseau jusqu'à l'Arduino. Pas besoin de boitier d'interface supplémentaire, tout est inclus. Le câble RJ45 du bus S88-N télé-alimente aussi les cartes, donc pas besoin d'alimenter séparément les cartes de rétro-signalisation. Sur le bus S88-N, ce logiciel permet le mélange des cartes à 8 entrées avec celles à 16 entrées.
Interface Ethernet :
L'interface Ethernet se place directement au dessus du MEGA puis la carte de prototypage se superpose par dessus le tout. Cet assemblage forme un empilement à 3 niveaux. Le MEGA 2560 n'est pas bien adapté pour ce type d'interface que je déconseille. Préférez l'interface WiFi plus performante.
Photo du montage
Note : Pour la voie principale, au lieu d'utiliser le booster L298N (2x2A), vous pouvez utiliser le Booster BTS7960 (43A) en insérant un fusible calibré et en adaptant son câblage : (Evitez le LMD18200 qui peut détruire les sorties du MEGA)
Commande DCC :
Rapport de compilation pour un Arduino Mega 2560 :
COMM série:
Je connecte l'Arduino sur une entrée USB du PC qui sera automatiquement redirigé vers un port COMx et détecté par l'IDE Arduino.
Après la compilation, je téléverse le code dans l'Arduino et j'ouvre le Moniteur série associé à l'IDE Arduino.
Comme j'ai activé le DEBUG, je lis le rapport d'initialisation envoyé par l'Arduino et je peux déjà envoyer des commandes manuelles
vers les locos qui réagissent immédiatement. Puis je ferme le Moniteur pour libérer le port COM. Important !
La suite se trouve dans le menu "Logiciel" et se passe maintenant dans votre PC. Compatibilité avec les logiciels de commande de réseaux ferroviaires (MEGA connecté en USB seulement)
Les commandes DCC++ sont toutes reconnues par cette bibliothèque et utilisées par les logiciels qui contrôlent vos trains.
Y N F avec N = groupes de 8 capteurs à lire sans dépasser 64 (2x32x8=512)
Q avec 64 groupes de 8 capteurs à lire initialisés (2x32x8=512)
*** Attention : l'utilisation du bus S88 avec une liaison Ethernet filaire n'a pas été complètement testée, ni mise au point. ***
JMRI : L'utilisation du bus S88 avec JMRI est expliquée sur le site de Locoduino
dont j'ai extrait le Mode d'emploi avec JMRI en PDF.
J'ai implémenté la fonction S88 dans la bibliothèque DCCppS88 pour être compatible avec JMRI. Je fourni les fichiers (Serial) modifiés
"S88_Sensor_Scan.py" et "SerialClose.py"
que vous devrez utiliser avec JMRI en les plaçant dans votre répertoire "jython". Il faut les éditer pour indiquer le nom de votre port COM ==> USB.
La valeur par défaut est "COM5", elle se trouve vers la fin des 2 fichiers. Vous devez remplacer cette valeur par votre port COMn. La communication Tx/Rx sur USB se fait à 115200 bauds. Je n'ai pas encore de version Ethernet opérationnelle.
PC 10/08/2018. Mise à jour du 26/03/2025
Rocrail : L'utilisation du bus S88 avec Rocrail est expliquée dans le Mode d'emploi avec Rocrail en PDF. La fonction S88 de la bibliothèque DCCppS88 est compatible avec Rocrail. La communication Tx/Rx sur USB se fait à 115200 bauds. Je n'ai pas de version Ethernet opérationnelle. |
Contact :
Envoyer un e-mail
(Remplir le champ "adresse" avec le nom de la gare en minuscule sans guillemet) lormedy |
||
Texte, photos, conception et réalisation : Lormedy © 2017-2020 | visiteurs | |
|