compteur html compteur de visite html  
Centrale DCC Programmation








          
      






La CENTRALE DCC PROGRAMMATION
Cette centrale est axée sur la programmation des décodeurs de locomotive ou d'accessoire.

La centrale programmation utilise le logiciel DCCpp implémenté dans un module Arduino Uno.

Les limitations du logiciel DCCpp sont :
• L'utilisation d'une interface visuelle (RocRail, Processing, ...), ou l'utilisation du moniteur série de l'interface IDE de l'Arduino pour pouvoir piloter le logiciel DCCpp,
• L'absence de programmation des décodeurs d'accessoire.

La centrale DCC Programmation décrit ici a été conçu pour d'une part, utiliser les possibilités du logiciel DCCpp et d'autre part gommer les défauts précédemment cités.

Rappel des possibilités du logiciel DCCpp :
• La programmation des décodeurs locomotive,
• La commande des décodeurs locomotives en adresse courte ou longue,
• La lecture des Cv des décodeurs de locomotive,
• La commande des décodeurs d'accessoire,
• ...

C'est à dire que cette centrale va permettre en plus des capacités du logiciel DCCpp de :
• Se passer d'une interface graphique sur ordinateur en la remplaçant par un afficheur LCD et un clavier 16 touches,
• De programmer les décodeurs d'accessoire jusqu'à l'adresse 510.

Pour obtenir ce résultat il est nécessaire d'utiliser une deuxième platine Arduino Uno pour :
• Le pilotage de l'afficheur LCD,
• Le pilotage du clavier 16 touches,
• La programmation des décodeurs d'accessoire,
• L'utilisation d'un buzzer pour les commandes erronées,
• Un potentiomètre pour la commande de vitesse,
•  ....

La centrale DCC Programmation se décompose ainsi :
• Une platine Arduino Uno pilotant la programmation et la lecture des décodeurs de locomotive,
• Une deuxième platine Arduino Uno constituant la partie commande (Afficheur LCD, clavier, buzzer, potentiomètre de vitesse), et chargée également de la programmation des décodeurs d'accessoire ainsi que de la commande des locomotives.

Les deux platines Arduino Uno échangent des informations via la liaison série :
• La partie commande, pilote le logiciel DCCpp,
• Le logiciel DCCpp informe la platine Arduino Uno de commande pour, par exemple, l'affichage du résultat de la lecture des Cv des locomotives.

arduino uno
Arduino Uno

La partie électronique :
• Elle est articulée autour de deux Arduinos Uno, et utilise le logiciel DCCpp pour l'un et le programme de la centrale programmation pour l'autre.

• Les deux Arduinos Uno communiquent entre-eux par l'intermédiaire de la liaison série.

La partie commande :
• Elle est constituée :
   • D'un afficheur LCD 4 lignes et 20 colonnes piloté par une interface I2C,
   • Un clavier 16 touches,
   • Un potentiomètre pour le réglage de la commande de vitesse.

arduinos uno relies par la liaison serie
Arduinos Uno reliés par la liaison série

interface de la centrale programmation
Interface de la Centrale Programmation
Les POSSIBILITÉS de la CENTRALE DCC PROGRAMMATION
La centrale DCC Programmation permet : 
• De commander les locomotives par l'adresse du décodeur qui doit être comprise :
   • Entre 1 et 127 (Adresse courte), 
   • Entre 128 et 10239 (Adresse longue), 

• L'utilisation d'une commande de vitesse sur 128 pas par potentiomètre,
• La marche avant et arrière, avec indication du sens sur l'afficheur LCD, 
• La programmation des variables de configuration (Cv) des décodeurs locomotives (1023) sur voie de programmation,
• Le réglage d'une adresse longue de locomotive est facilité par l'utilisation d'une commande spécifique : (Calcul et programmation automatique de la valeur des Cv 17 et 18), sur voie de programmation,
• Lecture des Cv sur voie de programmation,
• Pour l'adresse longue, la lecture des Cv 17 et 18 ainsi que le calcul de l'adresse sont automatiques, sur voie de programmation
• La programmation des décodeurs d'accessoire jusqu'à 510,
• La commande des décodeurs d'accessoire jusqu'à 510.

DESCRIPTION de la CENTRALE DCC PROGRAMMATION
Liste des composants
Partie électronique.
La centrale DCC est articulée autour de :
2 Arduinos Uno,
1 afficheur LCD,
1 clavier 16 touches,
2 MAX 471,
1 MAX 485,
2 boosters à base de L298,
1 potentiomètre de vitesse 10 KΩ ou 100KΩ linéaire,
1 résistance de 220 Ω,
1 led rouge,
1 buzzer.

arduino uno
                                            
l298
                                                                                       Arduino Uno                                                                                                                                   L298

max471
                                           
max485
                                                                                Max 471                                                                                                 MAX 485                  

La PARTIE ÉLECTRONIQUE de la CENTRALE DCC PROGRAMMATION

Câblage général de la centrale DCC Programmation
DÉTAILS de FONCTIONNEMENT
Les 2 ARDUINO UNO
Les deux Arduinos UNO sont le cœur du montage.
Dans l'Arduino Uno 1 est implémenté le logiciel DCCpp qui sera utilisé pour la programmation des décodeurs de locomotive et la lecture des Cv.
Dans l'Arduino Uno 2 est implémenté le logiciel de l'interface de programmation de la centrale qui sera utilisé pour :
• La gestion de l'affichage,
• La gestion du clavier,
• La commande de l'Arduino Uno 1,
• La gestion de la communication série,
• La programmation des accessoires,
• La commande des accessoires,
• La commande de vitesse en adresse courte ou longue sur 128 pas de vitesse,
• Le contrôle d'intensité en commande locomotive,
• Le contrôle des deux L298.

Si des modifications de ce câblage sont réalisées, ils doivent obligatoirement être pris en compte dans le programme sous peine de non-fonctionnement.

Alimentation des deux Arduino Uno
Les deux Arduinos Uno sont reliés électriquement entre eux dans le schéma électronique.
Ainsi, l'alimentation d'un seul Arduino Uno est nécessaire. Le deuxième Arduino Uno est alimenté automatiquement.

L'afficheur LCD
L'afficheur utilisé est un modèle 4 lignes et 20 colonnes de type parallèle.
Pour simplifier le câblage il lui a été adjoint un module I2C qui permet de le commander uniquement avec 2 fils, plus le Vcc (+) et le Gnd (-).

Dans le logiciel programmation, il est nécessaire d'indiquer l'adresse I2C du réglage de l'interface I2C de l'afficheur LCD.
Par défaut l'adresse est (0x27).

Dans le cas où cette adresse ne correspondrait pas au réglage de votre interface I2C, il est nécessaire d'indiquer dans le programme la bonne adresse sous peine de non fonctionnement.
Pour cela on peut utiliser le programme i2c_scanner pour déterminer l'adresse du module I2C utilisé.
Ensuite il faut l'intégrer dans le logiciel de programmation.

Du fait de l'utilisation d'un module I2C la bibliothèque à utiliser est LiquidCrystal_I2C.h.

interface i2c
                 
mise en place iinterface i2c
                                                                        Interface I2C                                                                                                      Mise en place de l'Interface sur l'afficheur LCD

Recherche de l'adresse I2C de l'interface de l'afficheur LCD
1. Reliez l'interface à l'Arduino Uno (voir schéma),
2. Chargez le sketch i2c_scanner dans l'Arduino Uno,
3. Ouvrez le moniteur série de l'interface IDE de l'arduino,
4.
Réglez la vitesse de transmission sur 9600 bauds,
5.
Le sketch indique l'adresse de l'interface I2C
6. Indiquez dans le programme de la centrale DCC programmation (ligne 100) l'adresse de l'interface I2C pour l'afficheur LCD si elle est différente de 0x27.

liaisons arduino uno et interface i2c
Liaisons nécessaires entre l'Arduino Uno et l'interface I2C

reponse adresse i2c
Adresse I2C de l'interface pour l'afficheur LCD

Le MAX 485
Le MAX 485 permet de transformer la sortie PWM broche 5 de l'Arduino DCCpp en 2 polarités inverses pour alimenter les entrées du module L298.

max485
MAX 485

MAX471
Les MAX 471 sont branchés en série dans l'alimentation des boosters et agissent comme un ampèremètre.

Ils informent ensuite l'Arduino Uno de la consommation de courant qui circule dans le circuit pour :

La voie de programmation Arduino Uno 1:
• Il permet de mesurer le courant renvoyé par le décodeur lors d'une lecture CV.

La voie principale Arduino Uno 2:
• Le logiciel coupe le courant lorsque l'intensité dépasse 2A.

max471
Max 471
Les BOOSTERS
Les booster reçoivent les signaux DCC nécessaires aux décodeurs.

Le booster de voie de programmation reçoit les signaux du MAX 485 venant de l'Arduino Uno 1.

le booster de voie principale reçoit les signaux venant de l'Arduino Uno 2.

Les broches ENA et ENB sont relier à l'Arduino Uno 2 qui gère la présence de la puissance sur les voies de programmation et principale.

Les cavaliers présent par défaut et reliant les entrées ENA ou ENB au +5v sont à retirer.

• Le 0 volt à la broche GND (Important : la masse des arduino est à relier impérativement à la broche GND du booster).

Nota
: L’amplitude du signal de commande numérique ne devra jamais dépasser
± 22V.

l298
L298 Cavaliers à retirer

VIDÉOS
Afin de montrer les détails de la CENTRALE DCC Programmation et son fonctionnement j'ai réalisé quelques vidéos qui j'espère vous seront utiles. 

 Les vidéos concernent : 
1. Présentation de la centrale DCC Programmation,  
2. Programmation Cv et commande d'une locomotive, 
3. Lecture Cv et commande d'une locomotive, 
4. Programmation, lecture, commande d'une locomotive pour adresse longue.