Ca y est : Ma première centrale DCC fonctionne, elle a été testée, elle a pu lire l’adresse d’une locomotive et même faire démarrer cette locomotive depuis le Moniteur Série de l’IDE de l’Arduino. Vous avez eu envie de la faire fonctionner avec JMRI mais cela mobilise un ordinateur ou un Raspberry.
Cet article se propose de décrire les éléments d’une manette basique pour utiliser Ma première centrale DCC en autonomie, sans ordinateur ou Raspberry. Manette simplissime, elle reste liée à la patte de sa centrale.
Le sans fil (radio) est prévu dans un deuxième temps mais c’est plus compliqué.
Ma première centrale DCC
Ma première manette DCC (1)
.
Par :
DIFFICULTÉ :★☆☆
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 30 mn
- et qui fonctionne en autonome sans ordinateur
- mais filaire de base. (radio à venir)
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 installer une bibliothèque
- savoir lire un schéma simple.
- et quand même avoir entendu parler de DCC, de DCC++ et de ses avatars.
Principe de fonctionnement
Cet article est la reprise d’un article de Dave Bodnar (datant du 16 juin 2016) qui a eu la gentillesse de répondre au message lui indiquant qu’on adaptait son montage.
http://trainelectronics.com/DCC_Ard...
Nota : en anglais, throttle veut dire accélérateur (mettre les gaz)
Voir l’adaptation de ce projet à la figure 1. Un Nano remplace le Pro Mini, ce qui permet la connexion directe du clavier.
Comme indiqué dans l’article Ma première centrale DCC la mini centrale en question peut être pilotée par n’importe quel dispositif envoyant les codes DCC++ sur l’entrée RX de l’Arduino UNO.
C’est le cas du présent montage qui utilise un Arduino Nano pour générer les codes correspondant aux commandes créées à partir d’un encodeur pour la vitesse et le sens, et à partir d’un clavier 12 touches (3x4) pour les fonctions (de 0 à 9) et les envoyer à la centrale.
Possibilités de cette manette :
Cette manette permet de conduire au choix de une à quatre locomotives. On peut en modifier l’adresse à tout moment (donc piloter entièrement votre parc de 200 locomotives). Ces adresses sont stockées dans l’Arduino Nano et sont donc conservées après coupure de l’alimentation.
Les adresses des locomotives sont saisies avec le clavier 3x4. (Noter qu’on ne modifie pas les CV des locomotives)
L’écran LCD permet d’afficher la vitesse de la locomotive en cours, sa direction, son adresse DCC, et l’état de ses fonctions.
Trois fils relient la manette au contrôleur DCC++ : Vin, GND et données :
Les Vin et GND sont reliés respectivement et le RX du Nano va au TX du UNO.
Matériel nécessaire :
Un Arduino Nano (broches soudées avec ICSP)
Un écran LCD 16x2 avec interface I2C
Un module codeur rotatif + bouton
Un clavier 3x4 en matrice
9 câbles DuPont femelle / femelle 10 cm
3 câbles DuPont femelle / mâle 20 cm
Notez le circuit d’interface I2C au dos de l’afficheur LCD et le potentiomètre (cube bleu) pour ajuster le contraste.
Réalisation :
On câble :
DuPont femelle / femelle sauf pour l’alimentation depuis le UNO de la centrale : mâle / femelle
le clavier : Pour éviter d’inverser le connecteur du clavier, il faut que le coté du connecteur repéré par un minuscule triangle (correspondant au contact 1 de la nappe) soit enfiché broche 5 et que le coté opposé soit enfiché broche 11. Le coté du contact 1 correspond aux touches 1, 4, 7 et *. (voir Figure 1)
le codeur rotatif : juste à coté SW → 4, puis DT → 3 et CLK → 2
Le guide de la nappe plate du codeur peut gêner un peu pour la pin 4, l’incliner légèrement pour la mise en place.
Comme on manque de broches, on utilise les broches VCC et et GND du connecteur ICSP :
Le VCC, broche 2 de l’ICSP est du coté du Vin, et le GND broche 6 de l’ICSP est du coté du TX, les deux sont sur la rangée de trois broches coté intérieur du Nano.
l’afficheur LCD : on peut utiliser la rangée de pins du Nano avec les entrées analogiques (A0 .. A7) puisqu’il y a 5V et GND au bout. Donc GND → GND, VCC → 5V, SCL → A5, SDA → A4.
l’alimentation : on alimente le Nano via son Vin à partir du Vin du UNO.
Donc GND → GND, Vin → Vin, TX (Nano)→ RX(UNO)
Programmation :
Vous avez déjà installé l’IDE Arduino avec l’article Ma première centrale DCC
et savez Installer une bibliothèque.
Vous placez le répertoire du programme décompressé dans votre répertoire de sketches. (ci-dessous) et vous double-cliquez sur throtlle00.ino.
Télédeversez le dans votre Nano.
Vous devez avoir installé les bibliothèques :
- Wire
- LiquidCrystal2
qui contiennent :
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
Vous pouvez constater un conflit causé par la liaison série entre le Nano et le UNO. Si vous avez ce problème qui se traduit par l’échec du téléversement du sketch, il faut débrancher la liaison série vers le UNO avant de le lancer.
Dave Bodnar propose à ceux qui ont des difficultés avec les bibliothèques nécessaires pour ce montage le téléchargement de celles qu’il a utilisées avec succès, dont sont extraites celles ci-dessus.
Utilisation :
Allumez l’alimentation et vous verrez l’écran d’accueil :
Bon, si vous ne voyez rien, c’est peut-être normal. Regardez l’écran légèrement incliné et vous devinerez éventuellement le texte. Il s’agit simplement du réglage du contraste avec le petit ajustable au dos de l’écran. Essayez de le régler. De toute manière, c’est à faire pour avoir une lecture optimale.
Si vous n’avez vraiment pas de chance, il se peut que l’adresse I2C de votre écran ne soit pas 0x3F
prévue dans le programme mais 0x27
. Vous pouvez faire la modification vous-même en recherchant 0x3F
et en le remplaçant par 0x27
.
Ce premier écran est suivi de cet autre :
La manette peut gérer jusqu’à 4 locomotives. On utilise la touche #
pour changer la locomotive contrôlée. Si vous n’utilisez que 2 locomotives, il peut devenir fastidieux d’appuyer plusieurs fois sur le bouton #
pour ignorer les adresses de locomotive inutilisées. Pour éviter ce problème, vous pouvez limiter le nombre de locomotives que la manette contrôlera à 4, 3, 2 ou 1. Pour effectuer ce changement, appuyez sur le bouton de l’encodeur rotatif lorsque vous allumez la manette. Le nombre d’adresses actives s’affichera et il vous sera demandé d’appuyer sur 1, 2, 3 ou 4 sur le clavier pour définir le nouveau nombre de locomotives. Le nombre d’adresses actives que vous choisissez sera stocké dans la manette et sera conservé jusqu’à ce que vous le changiez.
Appuyez sur le bouton #
à droite pour sélectionner l’une des 4 adresses de locomotives qui peuvent être stockées. Sur la photo ci-dessous, la locomotive 4
a été choisie. Avant utilisation, les adresses stockées valent 255.
Appuyez sur le bouton *
à gauche pour entrer l’adresse de la locomotive à 4 chiffres. Notez que les 4 chiffres doivent être entrés. Par exemple pour l’adresse 12 appuyez sur puis puis 1
puis 2
.
Tournez le bouton du codeur vers la droite (dans le sens des aiguilles d’une montre) pour augmenter la vitesse vers l’avant ou vers l’arrière. Appuyez sur le bouton du codeur pour inverser le sens de la locomotive.
Cet écran montre que la vitesse V
est de et la direction >
est vers l’avant. La locomotive est la n°4
et son adresse est 12
Ici la locomotive #1
, avec l’adresse 68
, avance >
à une vitesse de (à l’arrêt).
Appuyer sur le bouton *
éteindra le contrôleur en arrêtant tous les trains. Dès que vous démarrerez un train avec le codeur, le courant sera rétabli.
Les fonctions sont commandées par le clavier avec un décalage :
F0 par 1 jusqu’à F8 par 9. La rangée de 0 sur le LCD reflète la position des fonctions.
Où acheter :
Où acheter ? une liste de fournisseurs, et ci-dessous des liens directs :
- https://www.ebay.fr/itm/384308385765 encoder + bouton
- https://www.ebay.fr/itm/201414989836 clavier
- https://www.ebay.fr/itm/173404996194 LCD
- https://fr.aliexpress.com/item/4000... Nano à souder
- https://www.amazon.fr/AZDelivery-Na... Nano soudé
- https://www.ebay.fr/itm/393052541629 câbles DuPont
- https://www.ebay.fr/itm/134042138257 boitier
Problèmes potentiels et limites :
On utilise ici des câbles DuPont. Ils ont la fâcheuse tendance à sortir de leur logement sans prévenir surtout si ils sont utilisés plusieurs fois. Il faut donc les surveiller de près.
Par ailleurs du fait de l’utilisation de la liaison série, on ne dispose que d’une manette.
Un exemple d’intégration :
L’ensemble pourra être mis dans un boitier 145x68x35, découpe et perçage requis.
La face inférieure du clavier est adhésive.
Évolution de cette manette :
Vous reconnaitrez le principe de cette manette dans Une manette simple et autonome pour LaBox, plus élaborée, mais tout à fait capable de fonctionner avec Ma première centrale DCC. Vous aurez peut-être envie de la réaliser.
Les difficultés que vous pouvez rencontrer :
- les fils DuPont qui ne tiennent pas bien lors des manipulations.
- les bibliothèques qui ont évolué.
- l’adresse de votre écran oled qui diffère de celle du programme.