Pilotage des moteurs pas à pas

Attention, dans les exemples qui suivent, à fins de simplifications, le moteur représenté n'a que 4 pas. Dans le commerce, les moteurs à 200 pas sont communs et ceux à 400 pas, fréquents.

Les différents moteurs pas à pas

La commande des moteurs pas à pas est souvent présentée comme la simple alternance du pilotage des bobines du moteur, mais nous verrons que la réalité est un peu plus complexe.

Tout d'abord, il existe différents types de moteur pas à pas. Les plus répandus sont les moteurs pas à pas à aimant permanent, ce sont d'eux dont nous traiterons ici.

Parmi ces moteurs, il existe deux manières de les câbler qui influe sur leur pilotage. Les moteurs unipolaires autorisent deux modes de pilotage : unipolaire et bipolaire. Les moteurs bipolaire ne peuvent être pilotés qu'en mode bipolaire.

Moteur unipolaire Moteur bipolaire

Commande unipolaire

La commande unipolaire permet de n'utiliser qu'un transistor par bobine. Comme ceci :

Elle est donc plus simple à mettre en œuvre sur une platine. L'inconvénient est que vous n'utilisez que la moitié de la bobine, diminuant grandement les performances du moteur. Attention, ce montage à certainement besoin d'une diode de roue libre par bobine. En effet, lorsque le transistor coupe l'alimentation de la bobine, ça crée une variation brusque de courant, qui se traduit par une très forte élévation de tension au niveau de la bobine : $$ U_l = L * \frac{di}{dt} $$

Cette surtension peut détruire les transistors.

Commande bipolaire

La commande bipolaire utilise la bobine complète et fait circuler le courant dans les deux sens de la bobine pour attirer alternativement le pole nord ou sud de l'aimant.

Si vous ne reconnaissez pas le montage, lisez notre article sur le pont en H.

Ce montage aussi requiert aussi des diodes de roue libre, 2 en chacun des points (A, B, C et D), une pour évacuer une tension fortement négative vers la masse, une pour évacuer une tension fortement positive votre tension positive d'alimentation des moteurs, représentée ici par +12V.

Fonctionnement

Alternance de l'alimentation des bobines

L'exemple est donné pour un moteur bipolaire.

Avec un moteur unipolaire, au lieu d'inverser le courant dans la bobine, il faut alimenter la seconde partie de la bobine.

Quand à chaque pas, une seule bobine est alimentée, on dit que le moteur est piloté par pas entier.

Demi-pas

En alimentant deux bobines à la fois, vous pouvez augmenter le couple du moteur. Vous pouvez continuer de réaliser des pas entiers, en alimentant à chaque pas les bobines deux à deux.

Mais si vous choisissez d'alimenter deux bobines, puis une seule, puis à nouveau deux bobines, vous pouvez réaliser des demi-pas et gagnez ainsi en précision.

Micro-pas

Il est possible de pousser le principe des demi-pas encore plus loin et de se servir d'un signal PWM ou MLI pour commander les bobines. En alimentant une bobine à 100% et l'autre à 50%, vous obtenez un quart de pas. Voilà pour le principe, en vrai, un peu de trigonométrie intervient et les valeurs ne sont pas exactement les mêmes :

Exemple de pilotage en 1/8e de pas, extrait de la fiche technique du TB6600HG (page 20) :

Pas Bobine A Bobine B
0 100% 0%
1/8 98 % 20%
2/8 92 % 38%
3/8 83 % 56%
4/8 71 % 71%
5/8 56 % 83%
6/8 38 % 92%
7/8 20 % 98%
1 0 % 100%

Limitation en courant

Pour les explication suivantes, nous prendrons l'exemple du moteur 17HM15-0904S. La fiche technique indique :

  • Alimentation (tension) : 5,4 V
  • Inductance par phase : 12 mH
  • Résistance par phase : 6 Ω
  • Courant par phase : 0,9 A
  • Nombre de pas : 400

Les bobines d'un moteur pas à pas peuvent être modélisées électriquement par :

  • Une résistance et une inductance, celles de la bobine
  • Une source de tension, tension générée dans la bobine par la rotation de l'aimant du moteur.

Un peu de théorie

Notons :

  • $U_n$ = la tension d'alimentation
  • $U_r$ = la tension aux bornes de la résistance
  • $U_l$ = la tension aux bornes de la bobine
  • $E$ = la force contre électromotrice

Les tensions s'ajoutent ainsi : $$ U_n = U_r + U_l + E$$ Nous supposerons $E$ négligeable devant les autres tensions. $$ U_n = U_r + U_l $$ Avec $$ U_r = R * I $$ $$ U_l = L * \frac{di}{dt}$$ Ce qui donne l'équation différentielle : $$ U_n = R*I + L \frac{di}{dt} $$ Il est possible de résoudre cette équation analytiquement et vous trouverez facilement des solutions pour $U_n$ constant.

Vous pouvez aussi utiliser la méthode des éléments finis pour visualiser le courant au fil du temps.

A propos des fiches techniques

Les fiches techniques des moteurs pas à pas indiquent souvent une tension d'alimentation. Cette tension est la tension à ne pas dépasser s'il n'y pas de régulation de courant. Un moteur pas à pas n'est pas sensible à la tension, mais au courant qui traverse ses bobines. En prenant garde à ce courant, il est possible d'ignorer la tension indiquée.

Dans notre cas, la tension indiquée est celle qui créerait un courant de 0,9A dans la bobine qui a une résistance de 6 Ω. 0,9 A * 6 Ω = 5,4 V

Besoin

Dans un moteur pas à pas, le couple fourni est proportionnel au courant. Voici le courant obtenu si on alimente le moteur en exemple avec sa tension d'alimentation nominale :

La moitié du couple est atteint au bout de 2 ms. 90% du couple au bout de 4 ms (approximativement).

Que se passe-t-il si nous faisons tourner à 1 tr/s ?

  • 400 pas par tour
  • 400 pas par secondes
  • 1 pas toutes les 2,5ms

Ce qui veut dire qu'à chaque pas, une bobine ne sera alimentée que 2,5 ms. Autant dire que sur ces 2,5 ms, le couple moyen est inférieur à 50% du couple.

Plus votre moteur tournera vite, plus la durée des pas se raccourcit, plus l'effet se fera sentir.

Augmentons la tension

En faisant passer l'alimentation de 5,4V à 24V, nous obtenons une réponse plus rapide, le courant nominal (0,9A) est atteint en 0,5 ms (contre plus de 4 ms précédemment).

Le problème, c'est que le courant va se stabiliser à 4 A, soit plus de 4 fois le couple nominal. Il faut s'attendre à une détérioration rapide du moteur.

Régulons le courant

Le système de régulation marche ainsi :

  • Une résistance, très faible, est mise entre la bobine du moteur pas à pas et la masse.
  • Un composant mesure la tension de cette résistance - qui est l'image du courant passant dans la bobine - et la compare avec une tension de référence.
  • Si la tension de la résistance est au dessus de la tension de référence, la commande du moteur pas à pas est coupée. Sinon le moteur est commandé normalement.

Sur certains modules, cette tension se règle avec un petit potentiomètre.

En reprenant l'exemple, voici ce qui se passe lorsque le moteur tourne à 1 tr/s :

En comparaison :

Alimentation 5,4V Alimentation 24V avec régulation
Couple moyen < 50% du nominal Couple moyen ≃ 90% du couple nominal

Envie d'essayer avec les paramètres de votre moteur ? Essayer ce fichier pour simuler le courant dans une bobine. Simulation courant dans une bobine.

Les modules

Les imprimantes 3D à construire soi-même ont popularisé les moteurs pas à pas et les cartes pour les piloter.

Les modules les plus évolués vous permettent de vous affranchir de la logique de pilotage des pas ou micro-pas. En général, avec ces modules, le pilotage se résume à :

  • Indiquer sur une broche le sens de rotation du moteur
  • Émettre une impulsion sur une autre boche pour passer au pas/micro-pas suivant

Attention, ce n'est pas le cas de tous ces modules, et certains modules ne proposent pas de régulation du courant.

VM8400DB (Velleman)

  • Courant continu max par phase : 1,5 A
  • Régulation de courant : Oui
  • Tension d'alimentation : entre 8,2 V et 45V
  • Dimensions : 20 x 15 mm
  • Pilotage par pas, 1/2 pas, 1/4 pas, 1/8 pas, 1/16 pas et 1/32 pas
  • Basé sur un DRV8825 de TI
  • Prix indicatif : 15€

A4988 (Pololu)

  • Courant continu max par phase : 1 A, 2 A avec refroidisseur
  • Régulation de courant : Oui
  • Tension d'alimentation : 8 à 35 V
  • Dimensions : 21 x 15 mm
  • Pilotage par pas, 1/2 pas, 1/4 pas, 1/8 pas et 1/16 pas
  • Basé sur un A4988 de Allegro MicroSystems
  • Prix indicatif : 7€

RB01C025 (SeedStudio)

  • Courant continu max par phase : 2 A avec refroidisseur
  • Régulation de courant : Oui
  • Tension d'alimentation : 8 à 35 V
  • Dimensions : 21 x 15 mm
  • Pilotage bobine par bobine, c'est au microcontrôleur de générer les consigne.
  • Basé sur un L298N
  • Prix indicatif : 24 €

Les composants

Les composants présentés ci-dessous vous permettent de vous affranchir de la logique de pilotage des pas ou micro-pas. En général, avec ces modules, le pilotage se résume à :

  • Indiquer sur une broche le sens de rotation du moteur
  • Émettre une impulsion sur une autre boche pour passer au pas/micro-pas suivant

Lisez quand même les fiches techniques si vous comptez vous servir de ces composants. Un certain nombre de composants annexes sont requis, notamment des condensateurs.

L297 + L298N

C'est un couple historique, le L298 est un pont en H tandis que le L297 gère la logique du pilotage des pas et la régulation de courant. Étant des composants traversants, ils présentent l'intérêt de pouvoir être monté assez facilement sur une platine d'essai. La fiche technique du L297 présente bien ce montage.

Cet avantage devient obsolète à cause des modules à bas coût mettant en œuvre des composants CMS.

DVR8825

Un exemple de composant de chez Texas Instruments.

  • Tension d'alimentation de 8,2 V à 45 V.
  • Courant continu maximal de 2,5 A (avec radiateur)
  • Boitier : HTSSOP (CMS - 28 broches)
  • Micro-pas : jusqu'à 1/32

A4988

Un exemple de composant de chez Allegro Microsystems.

  • Tension d'alimentation de 8 V à 35 V.
  • Courant continu maximal de 2 A
  • Boitier : QFN (CMS - 28 broches)
  • Micro-pas : jusqu'à 1/16