Commande d'un réseau en DCC avec un module ARDUINO

Commande d'une plaque tournante avec un moteur pas à pas


1 Cahier des charges

Il s'agit de piloter en manuel et en DCC une petite plaque tournante qui n'a que trois positions possibles: 0, 90 et 180 degrés. Cette plaque tournante sera intégrée dans un des modules du réseau du Cercle Atlantique du Zéro.

La solution retenue est l'utilisation d'un moteur pas à pas commandé par un module ARDUINO et un driver.
L'ARDUINO assure à la fois le décodage DCC et la commande de la plaque tournante.
Le système est constitué des éléments suivants:
- un moteur pas à pas
- un driver
- un module ARDUINO UNO
- un potentiomètre
- une alimentation 12 V
- les connecteurs

2 La plaque tournante

Le système est destiné à piloter une plaque tournante de chez VAPEURLAND. de diamètre 21 cm, réalisée en laiton et bois.



Pour les premiers essais, j'ai utilisé un plateau tournant pour TV de diamètre 25 cm. Ce plateau monté sur roulement à billes coûte 5 Euros chez Pearl Diffusion.



3. Le moteur pas à pas

Il s'agit d'un moteur bipolaire à 400 pas acheté chez SELECTRONIC.

Voici une photo du moteur.



Ses caractéristiques sont les suivantes:
Type : Bipolaire 2 phases
Couple de maintien : 35N-cm
Angle de pas : 0,9°
Courant par phase : 0,3A
Tension : 12,0V
Inductance par phase : 90,0mH
Le cablage est donné sur la figure ci-dessous.



4. Le driver

J'ai utilisé un module de pilotage de moteur L298 pour ARDUINO acheté chez TIPTOPBOARDS.
Ce module contient un double pont en H et peut donc piloter un moteur pas à pas.

En utilisant des sorties PWM de l'ARDUINO, il est possible avec le module L298 d'obtenir plusieurs micro-pas par pas, avec passage progressif du courant d'une bobine à l'autre.
Le programme qui permet de passer de l'entrée A de la bobine 1 à l'entrée B de la bobine 2 est le suivant:
:


n est le nombre de micro-pas par pas (1,2,4,8 ou 16)
dt est le temps d'arrêt entre 2 pas
dn=pi/(2*n); avec pi=3.1416

Avec n=4 (4 micro-pas par pas), ce qui correspond à 1600 pas pour le moteur utilisé, le résultat est satisfaisant. On ne voit plus les saccades.

Les connexions entre le module L298 et le moteur sont les suivantes:
Out1 est relié à l'entrée A de la bobine 1 (fil brun)
Out2 est relié à l'entrée C de la bobine 1 (fil blanc)
Out3 est relié à l'entrée B de la bobine 2 (fil orange)
Out4 est relié à l'entrée D de la bobine 2 (fil vert)

Les entrées IN1, IN2, IN3 et IN4 du module sont à relier à 4 sorties PWM de l'ARDUINO ( j'ai utilisé les sorties 3,9,10 et 11)

5. Le circuit de commande avec l'ARDUINO

Le potentiomètre qui permet de commander manuellement le moteur pas à pas est connecté comme suit:
- une broche au +5V
- la broche du milieu à l'entrée A1 de l'ARDUINO
- la troisième broche à la masse

Le signal DCC est appliqué entre l'entrée 2 de l'ARDUINO UNO et la masse en insérant un circuit d'adaptation qui permet de réduire l'amplitude du signal DCC issu d'une centrale avec une amplitude de 14 à 16 volts.
Le schéma du circuit est représenté ci-dessous.



Et voici une photo du boîtier de commande de dimensions 10,5 x 6 x3,5 cm.


Le boîtier de commande possède un bouton relié au potentiomètre à quatre positions:
position 0: commande en DCC
position 1: 0 degrés
position 2: rotation de 90 degrés
position 3: rotation de 180 degrés

L'ARDUINO assure à la fois le décodage DCC et la commande de la plaque tournante.

Lorsque l'on commande la plaque en DCC avec une manette LENZ, les commandes sont les suivantes:
adresse: 66 (modifiable évidemment)
vitesse: permet le choix entre 3 vitesses de rotation de la plaque (40, 80 ou 160 secondes par tour)
fonction F0: position 0 degré
fonction F1: position 90 degrés
fonction F2: position 180 degrés
fonction F3: position 270 degrés

5.1 Commande par un ARDUINO UNO

Les affectations des broches de l'ARDUINO sont les suivantes:
A1: connecté au point milieu du potentiomètre
GND: connecté à une broche du potentiomètre et à l'entrée Masse du module L298
+5V: connecté à une broche du potentiomètre
Vin: connecté à l'entrée Vcc du module L298 (+12V)
broche 2 (entrée): entrée du signal DCC
broche 3 (sortie PWM) : connecté à l'entrée IN1 du module L298
broche 9 (sortie PWM) : connecté à l'entrée IN2 du module L298
broche 10 (sortie PWM) : connecté à l'entrée IN3 du module L298
broche 11 (sortie PWM) : connecté à l'entrée IN4 du module L298

5.2 Commande par un ARDUINO PRO MINI

Il y a au moins 3 bonnes raisons de préférer un ARDUINO PRO MINI à un ARDUINO UNO:
- le coût, on peut trouver un PRO MINI à moins de 4 Euros
- l'encombrement (la taille est très réduite, ce qui facilite l'insertion dans un petit boîtier)
- le cablage est fait en soudant les fils directement sur le circuit imprimé, ce qui est beaucoup plus fiable que l'utilisation des connecteurs de l'ARDUINO UNO.

Le seul inconvénient est que le PRO MINI ne peut pas être alimenté en 12V. Il y a bien un régulateur intégré au circuit, mais il n'est pas fiable. La meilleure solution est d'alimenter l'ARDUINO en 5 V en utilisant la sortie 5V du module L298

Les affectations des broches de l'ARDUINO PRO MINI sont les suivantes:
A1: connecté au point milieu du potentiomètre
GND: connecté à une broche du potentiomètre et à l'entrée Masse du module L298
Vcc: connecté au +5V du module L298, une broche du potentiomètre doit aussi être connectée au + 5V
broche 2 (entrée): entrée du signal DCC
broche 3 (sortie PWM) : connecté à l'entrée IN1 du module L298
broche 9 (sortie PWM) : connecté à l'entrée IN2 du module L298
broche 10 (sortie PWM) : connecté à l'entrée IN3 du module L298
broche 11 (sortie PWM) : connecté à l'entrée IN4 du module L298

6. Le programme de l'ARDUINO

Le programme de l'ARDUINO ainsi que la librairie DCC peuvent être téléchargés en cliquant ici.

Le dossier "NmraDcc" qui contient la librairie doit être plaçé dans le dossier "librairies" de l'ARDUINO.

7. Une video qui montre les résultats

Voici une vidéo qui montre l'exécution d'une séquence de déplacement de 90 et 180 degrés avec différentes vitesses de déplacement: 80, 40 et 160 secondes pour un tour complet de la plaque (360 degrés).



8. Commande en DCC d'une plaque tournante à 5 positions

Suite à une demande d'un modéliste, j'ai modifié le programme de commande de la plaque pour l'adapter à une plaque à 5 positions comme montré sur le schéma ci-dessous.



La commande de la plaque se fait uniquement en DCC (la commande par potentiomètre a été supprimée). La plaque se commande comme une locomotive d'adresse 66.

La commande de vitesse permet de faire varier la vitesse de rotation de la plaque (3 vitesses possibles).

La commande de chaque position est affectée à une touche de fonction:
F0 position 0
F1 position 1 (36 degrés)
F2 position 2 (72 degrés)
F3 position 3 (108 degrés)
F4 position 4 (144 degrés)
F5 position 5 (180 degrés)
Lorsque l'on coupe la fonction, celà coupe le courant dans les bobines.

Le passage d'une position à l'autre (par exemple 1 à 4) doit s'effectuer comme suit:
activer F1 et attendre que la plaque atteigne sa position
désactiver F1, ce qui coupe le courant dans les bobines
activer F4 et attendre que la plaque atteigne sa position
désactiver F4, ce qui coupe le courant dans les bobines

Le programme permet de mémoriser la position de la plaque lors d'une coupure d'alimentation de l'ARDUINO (j'ai utilisé l'EEPROM de l'ARDUINO).

Le programme de l'ARDUINO ainsi que la librairie DCC peuvent être téléchargés en cliquant ici.

Page suivante


Page précédente


Retour page d'accueil