Académique Documents
Professionnel Documents
Culture Documents
Extrait du PoBot
http://www.pobot.org
PoBot
Qu'est-ce qu'un moteur pas à pas ? Comment le piloter ? Découverte des principes généraux
Sommaire
• Moteurs unipolaires et (...)
• Problématique
Les moteurs pas-à-pas sont disponibles assez facilement dans les magasins d'électroniques, à faible prix. Ces
modèles courants sont des moteurs à aimant permanent. Ce sont ceux dont nous parlerons dans cet article.
En alimentant les enroulements successivement dans le bon ordre et dans le bon sens, on peut alors faire tourner le
rotor dans le sens désiré. Cette succession d'alignement est ce qu'on appelle le pas.
On distingue deux familles dans les moteurs pas-à-pas à aimant permanent que nous utilisons en robotique ludique :
• les moteurs unipolaires : le courant circule dans un seul sens dans des demi-bobines, attirant toujours le
même pôle.
• les moteurs bipolaires : le courant circule dans les deux sens dans les bobines, attirant tantôt le nord, tantôt le
sud.
Les différences de commande entre ces deux moteurs se situent donc uniquement dans l'alimentation des
enroulements, mais pas dans la séquence principale : Nord sur bobine 1, Sud sur bobine 2, Sud sur bobine 1, Nord
sur bobine 2, etc... et inversement pour le sens de rotation opposé.
Dans le cas des moteurs bipolaires, la bobine n'a que deux bornes et la tension à ses bornes sera soit positive,
négative ou nulle. Des séquences particulières peuvent être utilisées, en jouant sur l'alimentation d'une bobine tandis
que la seconde garde sa valeur : on obtient alors des demi-pas, voire des quart-de-pas.
Dans le cas des moteurs unipolaires, les bobines ont 3 bornes, une centrale (reliée à un potentiel fixe, la masse par
exemple) et une à chaque extrémité. On ne se sert que de demi-bobines à chaque fois ; chaque demi-bobine servant
à générer un champ magnétique de direction opposée à celui de l'autre demi-bobine. Les demi-bobines n'ont plus
que deux états : alimentées ou non alimentées. L'avantage des moteurs unipolaires est qu'il n'y a pas d'inversion de
sens du courant dans les bobines. Ceci sollicite moins l'électronique de puissance et rend inutile l'utilisation de
diodes de roue-libre.
Problématique
A priori, la seule difficulté réside dans l'ordre d'alimentation des enroulements. En fait, ce n'est pas le cas. Wikipédia
[http://fr.wikipedia.org/wiki/Moteur_pas_%C3%A0_pas] et d'autres sites décrivent bien les différents états de
commande. Ça, c'est la partie facile. Le problème se situe à un niveau bien plus petit.
1. Lorsqu'un enroulement est alimenté, le rotor commence à tourner pour s'aligner avec le champ magnétique.
2. Le mouvement du rotor crée une force contre-électromotrice. On se retrouve temporairement avec le même
modèle électrique qu'un moteur à courant continu. (Force contre-électromotrice, résistance, bobine).
3. Une fois que le rotor est aligné avec le champ, la force électromotrice disparaît.
On se retrouve avec une simple bobine et une faible résistance en série (le même modèle électrique qu'un moteur à
courant continu bloqué). Le tout alimenté avec du 9, 12 ou 24 V. La résistance est de l'ordre de 1 Ohm (3 Ohm sur
mon moteur). Avec 24 V, cela fait 8 A qui traversent notre circuit et notre moteur, et pour rien ! (Généralement, 8 A
dans un circuit => Boum ! - ça marche aussi avec 9 ou 10 A.)
La solution généralement mise en place est de mesurer le courant et de couper l'alimentation lorsque celui-ci devient
trop important. Pour comprendre le fonctionnement de la commande d'un moteur pas-à-pas bipolaire, étudions le
montage L298 + L297 donné dans les fiches techniques.
On va commencer par la partie droite du schéma. Le L298 contient deux ponts en H. Chacun des enroulements du
moteur pas-à-pas sont alimentés de la même manière qu'un moteurs à courant continu. Le pont en H permet de leur
imposer une tension positive, négative ou nulle. Dans ce montage, il est impératif de mettre les résistances Rs1 et
Rs2. Ces résistances permettent au L297 de protéger le moteur des surintensités.
Passons à la partie droite du schéma et essayons de comprendre le rôle de toutes les pattes du L297.
L297
Détail du L297
Pour la partie contrôle d'intensité, voici comment le composant est sensé fonctionner : Les faibles résistances Rs (de
l'ordre de 0,5 Ohm) sont mises en série avec l'enroulement, entre l'enroulement et la masse. La tension aux bornes
de cette résistance donne une image du courant traversant l'enroulement. Le L297 compare cette tension (SENS1
ou SENS2) à une tension de référence (VREF) . Si la tension aux bornes de Rs est supérieure à la tension de
référence, le composant coupe l'alimentation de la bobine.
Ce système permet donc de couper l'alimentation avant de détruire le circuit. Par contre, il faut aussi un système qui
permet de ré-alimenter la bobine lorsque nécessaire. Sur le L297, ceci est fait par un oscillateur qui réactive
l'alimentation la bobine périodiquement. Si on désire piloter plusieurs moteur pas à pas avec plusieurs L297, on peut
synchroniser ces horloges de la manière suivante : un L297 utilise son horloge et "l'envoie" aux autres L297 en
reliant les pattes SYNC en elles.
Post-scriptum :
Premiers essais (14/07/2010) Sur une platine de test, un PIC pilote un ensemble L297 + L293E (équivalent du L298 mais plus facile à mettre sur
une platine d'essais). J'ai tout soudé sauf les diodes de roue libre. Je sors le L297 et le L293E de leur support, je ne mets que la tension logique
qui provient de ma liaison USB. Un petit code configure le PIC pour activer le L297 et lui fait faire un pas toutes les secondes. Au voltmètre, je test
les tensions d'entrée du L297. Les première mesure ne sont pas bonnes, je me sers des pattes du port A du PIC. Celle-ci sont configurées en
analogique par défaut, je les configure en digital (registre ADCON).
Deuxième tentative, les tensions d'entrées semblent bonnes, je coupe l'alimentation, branche le L297 et mesure la tension de sortie entre A et B
ou entre C et D. Je m'attends à voir successivement +5V, 0V, -5V, 0V. Mais, les deux mesures sont stables, à +5V. Je me doute que cela vient de
la génération du signal pour l'entrée CLOCK du L297. Dans la fiche technique, il est recommandé de mettre CLOCK à 1 et de la ramener
brièvement à 0 pour marquer un pas. Le temps minimum à 0 doit être de 1µs. Je faisais l'inverse, je maintenais l'horloge à 0 et la faisais passer à
1 pendant 1 cycle de PIC, soit 1/12 µs.
En modifiant le code de génération du créneau, on obtient la bonne séquence de tension, en branchant le L293E et le moteur j'ai pu voir le moteur
tourner brièvement.
N'ayant pas mis les diodes de roue libre, le L293E m'a laissé tombé.