Un contrôleur pour moteurs pas à pas

Ce contrôleur pour moteurs pas à pas, permettant de piloter des moteurs unipolaires ou bipolaires, dispose d’une ligne bus I2C gérant le moteur, au moyen d’une interface externe, par voie logicielle et PC. Il est possible en outre d’effectuer un contrôle manuel grâce à deux poussoirs permettant de modifier la position de l’axe du moteur.



Les moteurs pas à pas ont des caractéristiques qui en font le choix idéal pour toutes les applications réclamant une précision élevée de déplacement angulaire et de vitesse de rotation d’un axe. Parmi les avantages de ce type de moteur, rappelons la possibilité de réalisation d’actions de précision contrôlées par ordinateur ou par microcontrôleur, sans devoir utiliser d’autre capteur de position ou de vitesse. Les autres caractéristiques importantes de ces moteurs sont leur robustesse mécanique et électrique élevée due à leur mode de fabrication, la facilité avec laquelle on peut faire faire à l’axe de petites rotations (dans un sens ou dans l’autre) et de le bloquer dans une position déterminée. Leur unique gros défaut est probablement la nécessité, pour les piloter, de mettre en oeuvre des circuits électroniques externes, généralement de type numérique.

Notre réalisation
Dans cet article nous verrons ensemble comment réaliser un contrôleur pour ce type de moteur. Les moteurs pas à pas ont comme caractéristique principale de pouvoir maintenir l’arbre moteur arrêté sur une position précise et définie : en effet, si on les alimente avec un courant constant ils se bornent à se bloquer dans une position angulaire.
Pour obtenir la rotation, il est nécessaire d’envoyer aux “phases” constituant le moteur une série d’impulsions de courant suivant une séquence déterminée, de façon à déplacer par pas successifs la position d’équilibre.
Il existe deux catégories différentes de moteurs se distinguant par le mode de commande : les moteurs bipolaires se caractérisent par deux phases et présentent généralement à l’extérieur deux paires de fils et les moteurs unipolaires à quatre phases présentant une inter face externe de cinq fils.

Le pilotage des moteurs unipolaires
Pour piloter des moteurs unipolaires il faut quatre interrupteurs (réalisables avec quatre transistors) faisant passer le courant dans les quatre phases suivant un ordre déterminé (voir figure 1).
En faisant circuler un courant dans une seule phase, le moteur reste bloqué dans une position d’équilibre, en revanche si l’on change (suivant une séquence particulière) la phase dans laquelle passe le courant, il est possible d’obtenir la rotation (dans les deux sens) de l’arbre moteur.

Figure 1 : Pilotage des moteurs unipolaires.

Schéma de la logique de contrôle d’un moteur unipolaire : la rotation de l’axe est obtenue en changeant, suivant une séquence précise, la phase F1 à F4 de circulation du courant. Pour cela notre circuit utilise quatre transistors T1 à T4 fonctionnant comme interrupteurs. Si nous faisons circuler le courant dans une unique phase, l’axe reste bloqué dans la même position.

Le pilotage des moteurs bipolaires
Les moteurs bipolaires se caractérisent par les quatre fils de connexion pour deux phases seulement : c’est pourquoi leur pilotage est légèrement plus complexe, en effet, le courant doit pouvoir traverser les deux phases dans les deux sens et par conséquent le circuit de pilotage est plus compliqué par rapport à celui d’un moteur unipolaire.
On utilise alors la configuration dite à “pont en H” (voir figure 2) qui, comme on le voit, est constituée de 8 transistors. Pour faire circuler le courant dans une phase, les deux paires de transistors placées en diagonales (par exemple, pour la phase F1, T6 et T11 pour le passage du courant dans un sens, T7 et T10 pour le passage du courant dans l’autre).
Dans ce cas également, pour obtenir la rotation de l’axe il est nécessaire de faire passer le courant (dans un sens comme dans l’autre) dans les phases F1 et F2, suivant une séquence déterminée.
Sachez que les circuits que nous venons de voir ne sont que des schémas de principe utiles pour comprendre la logique de pilotage d’un moteur pas à pas, en fait, afin d’éviter d’endommager les transistors, il est nécessaire d’insérer au moins une diode dite de “recirculation”. Il est en outre indispensable d’intégrer dans le schéma un circuit numérique spécialisé ou un microcontrôleur capable de commander l’activation et la désactivation des transistors utilisés.

Figure 2 : Pilotage des moteurs bipolaires.

Schéma de la logique de contrôle d’un moteur bipolaire : la rotation de l’axe du moteur est obtenue en faisant circuler, suivant une séquence précise, le courant (aussi bien dans un sens que dans le sens opposé) dans les deux phases F1 et F2. Pour cela on utilise une configuration dite “pont en H” composé de notre platine à huit transistors.

La carte d’interface pour moteur pas à pas
Voyons à présent comment fonctionne le contrôleur proposé dans cet article.
La carte est en mesure de fonctionner avec un moteur unipolaire aussi bien qu’avec un moteur bipolaire (la sélection entre les deux types se fait à l’aide d’un cavalier ou “strap”). En plus deux modes sont disponibles (“half” et “full step”), se différenciant par la vitesse de rotation et par la précision du mouvement.
Le circuit dispose de deux poussoirs (“step” et “half/full”) : le premier est utilisé pour commander le mouvement du moteur, le second sélectionne en revanche le mode de fonctionnement.
En outre, si l’on presse en même temps les deux poussoirs, il est possible de changer le sens de rotation de l’axe.
Le circuit dispose d’un connecteur de type bus I2C permettant de le relier à notre Carte d’interface pour ordinateur K8000 (ELM 59 p.46). Ainsi, en utilisant un logiciel téléchargeable sur le site www.velleman.be il est possible de contrôler le moteur directement par PC. Avec cette application des programmes vous sont aussi fournis à titre d’exemple, accompagnés d’une documentation permettant d’apprendre à gérer le contrôleur à travers les différents langages de programmation : Turbo Pascal pour Dos, QBasic et Visual Basic.

Le schéma électrique
On le trouve figure 3 : le coeur du système est bien entendu le microcontrôleur IC4 PIC16C54-EV8005, déjà programmé en usine, s’occupant de produire les formes d’onde et les impulsions nécessaires à la commande des transistors contrôlant le passage du courant dans les phases du moteur. Le PIC est directement relié aux poussoirs “step” et “half/full” (respectivement touches SW1 et SW2 connectées aux broches 2 et 1 du microcontrôleur) et, selon la pression que l’on exerce sur eux, il produit de façon différente les impulsions de courant. En outre, le microcontrôleur gère la communication avec l’extérieur à travers le bus I2C (broches 17 et 18).
Si nous analysons l’étage final de pilotage du moteur, il est possible de voir la fameuse configuration à “pont en H” évoquée en introduction : elle se compose des transistors T1, T2, T5 à T8, T11 et T12. En outre, on aperçoit les diodes de recirculation D9 à D16.
Cela aussi nous l’avons dit en introduction, la carte peut fonctionner avec des moteurs unipolaires comme avec des moteurs bipolaires.
La sélection de l’un ou l’autre type de moteur se fait par le cavalier JU (ouvert pour un moteur bipolaire et fermé pour un unipolaire). En ef fet, quand JU est fermé, à travers les portes NAND N11 à N14, les transistors T2, T6, T8 et T12 sont “déshabilités” et donc le circuit est mis en configuration unipolaire.
Dans le schéma électrique on a également le dip-switch SW3 à quatre micro-interrupteurs (A0 à A3) : en effet, dans l’article concernant la Carte d’interface pour ordinateur K8000, nous avions souligné qu’il était possible de lui relier plusieurs cartes, chacune étant identifiée par un code propre de quatre bits, eh bien grâce à SW3 il est possible d’identifier le Contrôleur pour moteur pas à pas EV8005 que nous allons construire. La gestion de la lecture du code et celle de l’identification se font directement par le microcontrôleur.

Figure 3 : Schéma électrique du contrôleur.

Figure 4a : Schéma d’implantation des composants du contrôleur.

Figure 4b : Dessin, à l’échelle 1, du circuit imprimé du contrôleur.

Figure 5 : Photo d’un des prototypes de la platine du contrôleur.

Liste des composants
R1 ................... 680 Ω
R2 ................... 270 Ω
R3 ................... 1,8 kΩ
R4 ................... 5,6 kΩ
R5 ................... 5,6 kΩ
R6 ................... 270 Ω
R7 ................... 1,8 kΩ
R8 ................... 680 Ω
R9 ................... 680 Ω
R10 .................. 5,6 kΩ
R11 .................. 270 Ω
R12 .................. 1,8 kΩ
R13 .................. 5,6 kΩ
R14 .................. 270 Ω
R15 .................. 1,8 kΩ
R16 .................. 5,6 kΩ
R17 .................. 680 Ω
R18 .................. 5,6 kΩ
R19 .................. 5,6 kΩ
R20 .................. 5,6 kΩ
R21 .................. 5,6 kΩ
R22 .................. 10 kΩ
R23 .................. 100 kΩ
R24 .................. 100 kΩ
R25 .................. 5,6 kΩ
R26 .................. 5,6 kΩ
R27 .................. 300 Ω
R28 .................. 1 kΩ
R29 .................. 1 kΩ
R30 .................. 3,3 Ω 1 W
R31 .................. 3,3 Ω 1 W
C1 ................... 100 nF multicouche
C2 ................... 100 nF multicouche
C3 ................... 18 pF céramique
C4 ................... 18 pF céramique
C5 ................... 10 μF 35 V électrolytique
C6 ................... 10 μF 35 V électrolytique
C7 ................... 2200 μF 35 V électrolytique
D1 ................... 1N4148
D2 ................... 1N4148
D3 ................... 1N4148
D4 ................... 1N4148
D5 ................... 1N4148
D6 ................... 1N4148
D7 ................... 1N4148
D8 ................... 1N4148
D9 ................... 1N4007
D10 .................. 1N4007
D11 .................. 1N4007
D12 .................. 1N4007
D13 .................. 1N4007
D14 .................. 1N4007
D15 .................. 1N4007
D16 .................. 1N4007
D17 .................. 1N4007
D18 .................. 1N4007
D19 .................. 1N4007
D20 .................. 1N4007
D21 .................. 1N4148
LD1 .................. LED 5 mm rouge
T1 ................... BC640
T2 ................... BC639
T3 ................... BC549
T4 ................... BC549
T5 ................... BC640
T6 ................... BC639
T7 ................... BC640
T8 ................... BC639
T9 ................... BC549
T10 .................. BC549
T11 .................. BC640
T12 .................. BC639
X1 ................... quartz 20 MHz
IC1 .................. 7408
IC2 .................. 7408
IC3 .................. 7404
IC4 .................. PIC16C54-EV8005 déjà programmé en usine
VR1 .................. 7805
SW1 .................. micropoussoir
SW2 .................. micropoussoir
SW3 .................. dip-switch à quatre microinterrupteurs

Divers :
2 .................... borniers à deux pôles
2 .................... borniers à trois pôles
3 .................... supports 2 x 7
1 .................... support 2 x 9
1 .................... barrette mâle à cinq pôles
1 .................... barrette mâle à dix pôles
1 .................... moteur unipolaire 12 VDC
Sauf spécification contraire, toutes les résistances sont des 1/4 W à 5 %.


La réalisation pratique
Une fois qu’on a réalisé le circuit imprimé simple face (la figure 4b en donne le dessin à l’échelle 1), ou qu’on se l’est procuré, on monte tous les composants dans un certain ordre en regardant fréquemment les figures 4a et 5 et la liste des composants. Alors, leur insertion et leur soudure ne posent pas de problèmes particuliers.
Montez d’abord les quatre supports des circuits intégrés ainsi que le dipswitch SW3 à quatre micro-interrupteurs (chiffres en bas) : ensuite, vérifiez bien les soudures (ni court-circuit entre pistes et pastilles, ni soudure froide collée) en prenant votre temps.
Montez les nombreux “straps” filaires, en utilisant des queues de composants que vous auriez conservées ou du fil de cuivre étamé nu (en traits noirs sur la figure 4a).
Montez toutes les résistances sans les intervertir (classez-les au préalable par valeurs et par puissance, R30 et R31 sont des 1 W).
Montez ensuite les diodes D1 à D8 et D21 1N4148 (en verre), bagues noires repère-détrompeurs orientées comme le montre la figure 4a. Puis les diodes D9 à D20 1N4007, bagues blanches repère-détrompeurs orientées comme le montre la figure 4a.
Montez la LED rouge en respectant bien sa polarité (la patte la plus longue est l’anode +).
Montez tous les condensateurs en respectant bien la polarité des électrolytiques (la patte la plus longue est le +). Montez les deux poussoirs SW1 et SW2, le quartz debout et bien enfoncé et le régulateur de tension VR1 7805 debout sans dissipateur et semelle métallique vers C1/C2.
Montez tous les transistors plastiques demi-lune en les triant au préalable par type (attention : ils se ressemblent tous et il est très facile de les confondre !), orientez leurs méplats repère-détrompeurs dans le bon sens montré par la figure 4a.
Avant de poursuivre, vérifiez bien que vous n’avez commis aucune erreur.
Montez ou ne montez pas le cavalier JU (un simple “strap” filaire suffit) selon que vous voulez utiliser un moteur unipolaire ou bipolaire.
Montez les deux borniers à cinq pôles (ou 3 + 2) à gauche de la carte et, entre eux, la barrette mâle à cinq pôles. Montez enfin, en haut de la carte, la barrette mâle à dix pôles.
Vous pouvez alors enfoncer délicatement les circuits intégrés IC1 et IC2 7408, IC3 7404 (ne les confondez pas !) et IC4 PIC dans leurs supports en orientant bien leurs repère-détrompeurs en U dans le sens indiqué par la figure 4a, soit tous vers l’intérieur de la carte.
Toutes les soudures ayant été une ultime fois vérifiées (et pourquoi pas nettoyées avec un solvant pour flux décapant), reliez le moteur au connecteur SK2 barrette à cinq pôles mâles. En fait deux connecteurs sont disponibles : le premier, SK2, à gauche, à cinq pôles, est pour un moteur unipolaire 12 VDC et le second, SK1, en haut, à dix pôles, pour d’autres types de moteurs.

Figure 6 : Liaison du contrôleur à la platine d’interface pour PC K8000.

Le Contrôleur pour moteurs pas à pas EV8005 présenté dans cet article peut être relié à notre Carte d’inter face pour ordinateur K8000 (ELM 59 p.46). Ainsi, il est possible de contrôler le moteur directement par voie logicielle avec un ordinateur : on peut connecter jusqu’à seize dispositifs, chacun devant être identifié par un code univoque à quatre bits sélectionnable par le dip-switch SW3. La liaison entre les deux cartes se fait par une ligne bus I2C (constituée de deux fils) plus un câble de masse.

Les essais et l’utilisation
Carte terminée et moteur relié, nous pouvons effectuer les premiers essais. Le premier est en mode manuel, sans relier la Carte d’interface pour PC K8000 : reliez le connecteur SK2, si ce n’est déjà fait, au moteur unipolaire à piloter et branchez aux bornes AC AC la tension d’alimentation (+12V alternatif ou continu). LD1 s’allume pour indiquer que la section d’alimentation fonctionne bien.
Pressez la touche “step” : le moteur exécute des rotations, pour plus de précision dans le positionnement, à chaque pression correspond une rotation angulaire de 0,9° environ.
C’est pourquoi il peut être difficile d’apprécier à l’oeil un de ces pas (“step”), pour plus de visibilité, maintenez pressée la touche de façon à obtenir une rotation continue.
Ensuite, pressez la touche “half/full” de manière à changer de mode de fonctionnement (le “half mode” correspond à une rotation plus précise mais plus lente, le “full mode” à une rotation plus rapide mais moins précise).
Avec la touche “step”, commandez des rotations et vérifiez qu’effectivement le mode change.
Enfin, essayez de presser en même temps les deux touches : ainsi, le sens de rotation s’inverse (vérifiez-le en maintenant pressée la touche “step”).
Si tous ces tests vous donnent satisfaction, essayez de relier la Carte d’interface pour PC K8000 et de tester le pilotage du moteur par voie logicielle avec votre ordinateur.
Tout d’abord, reliez les deux cartes : pour ce faire, il vous faut trois câbles à monter entre les bornes GND, SCL et SDA des deux cartes.
Ensuite, agissez sur le dip-switch SW3 du Contrôleur pour moteur pas à pas de façon à paramétrer le code univoque à quatre bits identifiant chacun des seize dispositifs qu’il est possible d’utiliser. Avec un câble parallèle, reliez la Carte d’interface pour PC à l’ordinateur et sur le site www.velleman.be téléchargez le logiciel disponible.
Exécutez le programme install.exe afin d’installer le pack sur votre système : un nouvel onglet nommé EV8005 et contenant certains programmes de test pour Windows ou DOS sera créé.
Les deux versions sont simples et intuitives à utiliser : il suffit de suivre les instructions données à l’écran.
On l’a vu, avec le logiciel sont installés aussi les codes sources (disponibles en Turbo Pascal pour DOS, QBasic et Visual Basic) ainsi que la documentation de certains programmes démo montrant comment commander par voie logicielle le moteur pas à pas relié au Contrôleur.
Commentaires



Font Size
+
16
-
lines height
+
2
-