 |
Objectif |

Je voulais pouvoir mettre entre les mains de mes petits-enfants un
système simple leur permettant de régler la vitesse dans les
deux sens de marche avec point milieu comme sur les alimentations du commerce,
mais avec un potentiomètre standard (les rhéostats ou potentiomètres à point
milieu sont coûteux et difficiles à trouver, sans parler de ceux avec un
inverseur au centre) et en fournissant un signal haché de type PWM (Pulse
Width Modulation, en français MLI, modulation de largeur d'impulsions).
Rappelons qu´un signal
de type PWM améliore notablement la prise de courant puisque, même à très
basse vitesse, c´est la tension maximale qui est appliquée (comme en DCC),
la variation de vitesse se faisant en modifiant le rapport entre le temps
de conduction et le temps de non-conduction à l´intérieur d´un cycle de
durée fixe.
Le montage décrit prévoit
une inversion du sens de marche par relais mais peut également s´adapter
à l´utilisation d´un pont en H.
Il sera possible de faire
évoluer également le montage en ajoutant une résistance de puissance en
série avec le transistor de puissance et d´utiliser le PIC en mesure d´intensité
pour compléter le montage par un disjoncteur électronique
dont le réarmement pourra être soit automatique (arrêt pendant une seconde
en cas de surintensité) ou manuel (une entrée est encore disponible sur
le PIC 12F675.
 |
Assembleur ou Mikrobasic ? |
Mes connaissances sur
la programmation des PIC ayant été acquises grâce à la rubrique PicTrain
(encore merci à Psi), j'ai tout naturellement essayé de faire
d´abord le programme en assembleur. Mais j'ai eu des difficultés à le mettre
au point de manière “propre” (cela marche parfaitement, mais il m'a fallu
me familiariser avec la manière de faire des tests et des soustractions
et, pour la mesure analogique, j'ai tâtonné et ne garantis la manière dont
tous les paramètres sont utilisés (n´hésitez pas à me faire part de vos
remarques).
Ces difficultés m'ont
conduit à m´initier à Mikrobasic avec lequel la réalisation a été très facile,
mais j´ai découvert, comme avec tout langage de haut niveau, qu´il ne permet
pas d'optimiser, au moins de manière simple, toutes les possibilités du
processeur. Mais, à moins de se lancer dans du traitement de signal pour
décoder du DCC ou une transmission radio, cela ne devrait pas poser de problème
pour la plupart des applications objet de la rubrique PicTrain.
Vous trouverez en bas
de page les deux programmes, l´un en assembleur, l´autre en Mikrobasic.
La simplicité du Mikrobasic est évidente surtout si l´on tient compte du
fait que, face à la lourdeur des opérations de test et de soustraction,
j´ai abandonné ce programme en assembleur après les premiers pas en Mikrobasic
et que la bande morte autour de la vitesse zéro n´y figure pas. (Attention
également, la sortie PWM y est sur la patte 7 au lieu de la 5 car cette
modification est intervenue tardivement pour faciliter l´implantation de
l´option future qui permettra la mesure et le contrôle du courant.)
Je signale à toutes fins
utiles (à quoi est-ce dû, le branchement étant le même ?) que le condensateur
de filtrage ne s´est avéré nécessaire sur la référence, pour éviter des
anomalies lorsque l´on fait varier le potentiomètre, que pour le programme
issu du Mikrobasic.
 |
Composants |
Coût total maximal : 7 à
8 €, sans l´alimentation (12 à 14 volts alternatif c'est-à-dire
la sortie accessoires d'un bon vieux transfo de train) :
 |
 |
 |
1 PIC 12F675 (maximum 2,20 €)
1 support à 8 pattes (0,10 €)
6 diodes 1N400x (6 x 0,08 €)
1 régulateur 7805 ou 78L05 (0,40 €)
1 condensateur 100 µF (0,25 €)
1 condensateur 10 µF (0,25 €)
1 condensateur 100 nF (0,10 €)
3 résistances 220 ohms (0,02 €)
1 résistance 10 kohms (0,02 €)
1 led 3 ou 5 mm (0,10 €)
1 transistor NPN genre BC547 (0,15 €)
1 transistor NPN genre BDX53C/BDW93C (0,60 €)
1 relais à deux inverseurs (2,50 €)
Veroboard ou Cimec de 2 x 3 cm environ |
|
 |
 |
Schéma électrique |
Difficile de faire plus
simple (en gris ,
les composants futurs pour la mesure de courant).
Le 5 volts, filtré (une
diode, un condensateur) et stabilisé (régulateur trois pattes) pour l´alimentation
du PIC est tiré de l´alimentation de puissance (transfo train, sortie dite
“accessoires”) qui est simplement redressée (pont de diodes), mais pourrait
être filtrée si l´on avait besoin de plus de puissance.
Le zéro volt sert de
masse commune pour la puissance et le PIC, ce qui permettra, dans une évolution
future, la mesure directe de l´intensité.
Le signal PWM sortant
du PIC commande un transistor de puissance (T1) qui, fonctionnant en tout
ou rien, ne chauffe pas et n´a pas besoin de radiateur (avantage du mode PWM).
L´inversion du sens de
marche, fonction de la position du potentiomètre, est commandée par un relais
à double inverseur. Le signal de sortie du PIC, étant limité en puissance
à 25 mA, passe par un transistor NPN de type BC547 ou équivalent (T2).
Note.
— Il serait intéressant de tester la possibilité de commander directement
le relais par une sortie du PIC, sans transistor intermédiaire, car il n´y
a probablement pas qu´ici que l´on se posera la question de la commande
d´un relais par un PIC. Il existe des relais 6 volts à faible consommation,
dont la résistance interne est de 165 ohms. En alimentant le montage
de telle sorte que la sortie ne fasse que 4,5 V (plage basse de fonctionnement
garanti du relais), le courant nécessaire serait alors de 27 mA, ce
qui un peu au-delà de la limite maxi mais probablement dans la tolérance
du PIC. C´est donc risqué, mais la tenue du PIC mériterait d´être testée.
 |
Référence analogique |
 |
 |
 |
 |
|
La
commande se fait par un potentiomètre ordinaire, de
valeur non critique, placé entre le + 5 V et le zéro volt,
dont le curseur fournit la référence à une entrée analogique du PIC.

Les traitements effectués sont indiqués dans les schémas ci-contre.
1. La tension d´entrée
varie de 0 à 5 V environ et entre sur une des trois entrées
analogiques du PIC (le PIC étant très sensible, un condensateur de
filtrage s´est avéré utile lorsque la mesure est réalisée en Basic).
La mesure est ramenée
de 10 bits à 8, pour limiter la variable à un seul octet, ce
qui facilite le traitement, et donne une précision amplement suffisante
ici.
2. Pour déterminer
le sens de marche, le PIC détecte si la valeur est supérieure ou inférieure
à V/2.
3. Pour élaborer
la référence de vitesse, le signal est ensuite traité pour avoir la
référence maximale aux extrémités et l´arrêt au milieu (127
x ou x 128 selon le sens).
4. Enfin, une “bande
morte” est ajoutée de part et d´autre du point d´arrêt central, afin
de faciliter l´arrêt et d´éviter au moteur de vibrer si le curseur
n´est pas exactement au milieu. |
 |
Sortie PWM |
 |
 |
 |
[Voir
aussi les commentaires inclus dans les programmes.]
Il existe des
PIC (comme le 16F628 disposant d´une fonction PWM native, où il suffit
d´indiquer le rapport cyclique et la fréquence, sans se préoccuper
de la commande elle-même. L´avantage principal est que le cycle se
déroule sans être perturbé par le programme principal (dans notre
cas le temps de mesure de la référence analogique).
Ce n´est pas le
cas du PIC 12F675 qui suffira pourtant à notre application.
La commande PWM
est réalisée de manière simple : partant d´une référence x
qui, dans notre cas et compte tenu de la bande morte, varie de 0 à
122, la sortie est “haute” pendant qu´une boucle compte de 0 à x,
puis “basse” de x à 122. D´ou une fréquence fixe et un rapport
cyclique variant de 0 à 100 %.
Le graphique ci-contre
(réalisé avec
WinOscillo) montre la commande PWM appliquée au transistor de puissance.
En assembleur,
le programme n´est arrêté que pendant le temps nécessaire à la mesure,
alors qu´en Mikrobasic il y a un délai fixe de 20 microsecondes.
Pour ne pas perturber la conduction complète à vitesse maximale, la
mesure n´est faite qu´un cycle sur 20. Ce n´est pas critique
dans notre application qui fonctionne à 330 Hz, fréquence habituellement
conseillée pour nos trains (600 Hz en enlevant la temporisation).
|
|
 |
 |
Programme en Mikrobasic |
Voir aussi les commentaires
dans le programme complet, disponible
ici.
 |
Programme en assembleur |
Voir aussi les commentaires
dans le programme complet, disponible
ici.
|