Composant · Pilote

A4988 Stepper Driver

La carte porteuse qui régule le courant dans une bobine de pas-à-pas. Limite au multimètre, le piège des résistances de mesure, et quand passer à un TMC.

Présentation

Une carte A4988 est une carte grand comme un timbre-poste entre un microcontrôleur et un moteur pas-à-pas bipolaire. Vous lui donnez deux signaux — une impulsion et une direction — et elle gère tout le reste : alimenter les bobines dans le bon ordre, et surtout réguler le courant qui y entre.

Ce second travail est celui qui compte et celui que l’on saute. Un enroulement de pas-à-pas est une inductance de faible résistance, typiquement 2 à 4 ohms. Brancher 24 V sur 2,8 Ω donne selon la loi d’Ohm 8,6 A, ce qui détruit un moteur 1,7 A en quelques secondes. L’A4988 l’évite en hachant l’alimentation des dizaines de milliers de fois par seconde, maintenant le courant moyen à la valeur réglée.

La carte n’a donc qu’un seul réglage : un potentiomètre qui fixe la limite de courant. Bien réglé, le pilote est invisible. Mal réglé, vous avez soit un moteur faible qui perd des pas soit un moteur chaud qui cuit.

Une carte porteuse A4988 vue de dessus avec huit pastilles dorées de chaque côté. La colonne de gauche indique ENABLE, MS1, MS2, MS3, RESET, SLEEP, STEP et DIR, avec STEP et DIR surlignés. La colonne de droite indique VMOT, GND, 2B, 2A, 1A, 1B, VDD et GND, avec VMOT surligné en rouge. Un potentiomètre en haut est noté comme potentiomètre VREF à sonder au multimètre, et un radiateur à ailettes couvre la puce du pilote. Deux petites résistances de mesure en bas de carte sont signalées comme R100 égale 0,1 ohm ou R050 égale 0,05 ohm, avec un avertissement de lire les vôtres avant tout calcul.
Seize pastilles, un potentiomètre, deux minuscules résistances qui changent l'arithmétique. STEP et DIR sont les seules broches que votre programme touche en fonctionnement. Télécharger le SVG

Brochage

Broche Sens Rôle
VMOT Alimentation 8–35 V moteur. Exige 100 µF en parallèle, à proximité.
GND (côté moteur) Alimentation Retour fort courant
VDD Alimentation 3–5,5 V logique, quelques mA
GND (côté logique) Alimentation Doit partager la masse avec l’alimentation moteur
1A, 1B Sortie Une bobine du moteur
2A, 2B Sortie L’autre bobine du moteur
STEP Entrée Un front montant = un micro-pas
DIR Entrée Haut ou bas choisit la direction
ENABLE Entrée Actif au bas. À la masse pour alimenter.
RESET Entrée Doit être au haut. Pontez-le vers SLEEP.
SLEEP Entrée Doit être au haut pour que le pilote tourne
MS1, MS2, MS3 Entrée Résolution de micro-pas ; rappelées au bas en interne

Deux broches expliquent la plupart des rapports « ça ne fait rien » : ENABLE laissée en l’air ou au haut (elle est active au bas, donc à tirer vers le bas), et RESET laissée en l’air (elle doit être au haut, d’où la consigne de ponter RESET vers SLEEP dans chaque guide).

Câblage vers un Arduino

Arduino 5V  ──── VDD
Arduino GND ──── GND (logic)  ──┬── GND (motor)
                                └── PSU −
PSU + (12–24 V) ──── VMOT ──┬── 100 µF electrolytic ──┘
                            
Pin 3  ──── STEP            RESET ──┬── SLEEP
Pin 4  ──── DIR                     
Pin 5  ──── ENABLE          MS1, MS2, MS3 ──── 5 V  (1/16 stepping)

Motor coil A ──── 1A, 1B
Motor coil B ──── 2A, 2B

Non-négociables :

  • Électrolytique 100 µF entre VMOT et GND, physiquement proche de la carte. C’est la cause la plus fréquente d’une carte qui meurt à la mise sous tension.
  • Masse commune entre l’Arduino et l’alimentation moteur. Sans elle, le signal STEP n’a pas de référence et le pilote ne voit que du bruit.
  • Ne débranchez jamais le moteur sous tension. Une bobine alimentée interrompue produit un pic sans nulle part où aller.
  • L’appariement des bobines compte ; la polarité dans une paire non. Si le moteur vibre sans tourner, les paires sont fausses. S’il tourne à l’envers, inversez deux fils d’une paire.

Régler la limite de courant — les nombres

Vref = I_phase × R_sense × 8

Mesurez Vref entre la vis métallique du potentiomètre et une broche de masse, avec VMOT alimenté et le moteur déconnecté. Visez 70–85 % du courant nominal du moteur : le dernier cinquième apporte très peu de couple et beaucoup de chaleur.

Courant cible R_mesure = 0,1 Ω (R100) R_mesure = 0,05 Ω (R050)
0,6 A 0,48 V 0,24 V
1,0 A 0,80 V 0,40 V
1,2 A 0,96 V 0,48 V
1,5 A 1,20 V 0,60 V
1,7 A 1,36 V 0,68 V

Lisez le marquage sur les deux résistances CMS noires près du bord inférieur avant de calculer. Régler 1,2 V sur une carte R050 demande 3 A dans un moteur prévu pour 1,7 A.

Utilisez un tournevis céramique. Un tournevis métallique qui ponte le potentiomètre vers autre chose sur une carte sous tension est une façon classique de détruire un pilote.

Ce que vous réglez, physiquement, est le couple crête que le moteur peut produire — le T_peak dans la loi en sinus qui gouverne tout ce que fait un pas-à-pas. Trop bas et le rotor traîne davantage pour la même charge et décroche plus tôt ; trop haut et vous avez de la chaleur inutile.

Micro-pas

MS1 MS2 MS3 Résolution Pas/tour
bas bas bas Pas entier 200
haut bas bas Demi 400
bas haut bas Quart 800
haut haut bas Huitième 1600
haut haut haut Seizième 3200

Les trois au haut est le choix normal. Il faut être clair sur le pourquoi : le micro-pas ne rend pas la machine plus précise en charge — l’erreur causée par une charge est inchangée quelle que soit la finesse du pas. Ce qu’il fait, c’est empêcher le rotor de résonner à chaque pas, ce qui fait la différence entre une machine qui hurle et une qui ronronne, et entre une surface à ondulation visible et une sans.

Le coût est la fréquence d’impulsions. En 1/16 sur un axe à 80 pas/mm, 100 mm/s exigent 8 000 impulsions par seconde. Un Arduino Uno générant les pas en logiciel s’essouffle vers 10 000–15 000 par seconde, ce qui est un vrai plafond sur un axe à vis à 400 pas/mm.

Courant, chaleur et budget d’alimentation

La dissipation propre de l’A4988 est modeste — le problème est la densité thermique, pas les watts totaux. Environ 0,5 W par phase à 1 A dans un boîtier sans presque aucun cuivre pour diffuser. Les limites en pratique :

Refroidissement Courant continu sûr
Puce nue, air calme ~1,0 A
Radiateur collé ~1,2 A
Radiateur plus air en mouvement ~1,5 A
Au-delà Utilisez un DRV8825 ou un TMC2209

La protection thermique ne s’annonce pas. Le pilote s’arrête, le moteur s’arrête en plein mouvement, le pilote refroidit et redémarre, et ce que vous observez est un axe qui perd « aléatoirement » un bout de position. Un axe qui échoue plus souvent en fin de long travail, ou dans une pièce chaude, est thermique jusqu’à preuve du contraire.

Côté alimentation, rappelez-vous que le hacheur se comporte comme un convertisseur abaisseur : le courant tiré d’une alimentation 24 V est bien inférieur au courant de phase, alors budgetez en puissance plutôt qu’en additionnant les courants de phase. Chaque moteur à une limite de 1,2 A sur des enroulements 2,8 Ω dissipe environ 8 W, et cela quand il est alimenté — y compris à l’arrêt. Voir le budget d’alimentation du robot.

Code minimal fonctionnel

const int STEP_PIN = 3, DIR_PIN = 4, EN_PIN = 5;

void setup() {
  pinMode(STEP_PIN, OUTPUT);
  pinMode(DIR_PIN, OUTPUT);
  pinMode(EN_PIN, OUTPUT);
  digitalWrite(EN_PIN, LOW);        // active low — energise the coils
  digitalWrite(DIR_PIN, HIGH);
}

void loop() {
  for (int i = 0; i < 3200; i++) {  // one revolution at 1/16
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(2);           // datasheet minimum is 1 us
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(300);         // this delay is the speed
  }
  delay(1000);
}

Bon pour un essai sur table, faux pour une machine : le rythme des pas passe directement à fond, ce qui au-delà du taux d’accrochage du moteur produit un bourdonnement sans mouvement. Utilisez AccelStepper ou votre propre profil de mouvement pour tout ce qui doit arriver quelque part. Vous pouvez voir exactement ce que cette commande non rampée fait au rotor dans le simulateur pas-à-pas.

Quel courant régler réellement

Le courant nominal sur l’étiquette d’un moteur suppose les conditions de refroidissement d’un banc d’essai — boulonné sur une grande plaque d’aluminium, dans de l’air calme à 25 °C. Votre machine est un support imprimé dans une pièce chaude.

Une règle pratique, avec le raisonnement plutôt que juste le nombre :

Situation Réglez la limite à Pourquoi
Large marge de couple, silence voulu 60–70 % du nominal Le couple chute linéairement, la chaleur chute au carré
Machine normale 70–85 % du nominal La réponse habituelle
Vraiment limité en couple 90–100 % du nominal Seulement avec radiateur et ventilation
Au-delà du nominal Jamais Vous n’achetez pas du couple, seulement de la chaleur

La raison pour laquelle le bas de gamme coûte moins cher qu’il n’y paraît est dans la seconde colonne. Le couple est proportionnel au courant, mais la chaleur est proportionnelle au courant au carré. Passer de 1,7 A à 1,2 A abandonne 29 % du couple et supprime la moitié de la chaleur :

1.7 A: P = 2 × 1.7² × 2.8 = 16.2 W per motor
1.2 A: P = 2 × 1.2² × 2.8 =  8.1 W per motor

Si le calcul de dimensionnement dit que vous utilisez 12 % du couple disponible, les 29 % abandonnés ne faisaient jamais rien.

Désalimenter, et la broche que la plupart des montages ignorent

ENABLE existe parce qu’un pas-à-pas brûle tout son courant réglé en restant parfaitement immobile. C’est le contraire de tout autre moteur rencontré par un débutant, et cela a des conséquences :

// Two energised NEMA 17s at 1.2 A dissipate ~16 W doing nothing at all.
digitalWrite(EN_PIN, HIGH);   // active low, so HIGH = coils off

Quand l’utiliser :

  • Entre les travaux sur X et Y. Un traceur ou un portique laser n’a aucune raison de tenir sa position au repos, et 16 W de chaleur dans un cadre imprimé pendant une heure comptent.
  • Jamais sur un axe Z portant une charge, sauf si le mécanisme est autobloquant. Une vis trapézoïdale T8 ne reculera pas, donc couper est sûr. Un Z par courroie chutera dès que vous coupez le courant.
  • Jamais en plein mouvement. Le rotor continue, le champ non, et vous avez jeté la position sans moyen de savoir de combien. Arrêtez, puis désactivez.

Le piège qui surprend : après coupure, le rotor se cale sur le détent le plus proche — la position de repos magnétique sans courant — qui peut être jusqu’à un pas entier de là où il était tenu. Sur un axe courroie à 80 pas/mm cela fait 0,2 mm de mouvement non annoncé, donc soit refaites la prise d’origine après chaque coupure, soit acceptez que coupure au repos et précision sub-dixième ne vont pas ensemble.

SLEEP est la version plus profonde : elle coupe aussi le régulateur interne, tirant des microampères au lieu des milliampères, mais il lui faut environ 1 ms pour se réveiller et elle réinitialise la position de micro-pas interne du pilote au micro-pas d’origine. Ce dernier point est le piège — sortir de SLEEP peut décaler le moteur jusqu’à un plein pas. Pour presque toute machine loisir, ENABLE est la broche voulue et SLEEP est celle à ponter au haut et oublier.

Dépannage

Symptôme Cause Solution
Rien ne se passe du tout ENABLE au haut, ou RESET en l’air Attachez ENABLE au bas ; pontez RESET vers SLEEP
Le moteur vibre, ne tourne pas Paires de bobines câblées croisées Ré-appariez à l’ohmmètre
Carte morte à la mise sous tension Pas de condensateur réservoir sur VMOT Électrolytique 100 µF, proche des broches
S’arrête en plein mouvement, redémarre ensuite Protection thermique Baissez Vref ; ajoutez radiateur et ventilation
Faible, décroche sous légère charge Vref trop bas Mesurez de nouveau ; vérifiez le marquage des résistances de mesure
Moteur brûlant Vref trop haut Recalculez — avez-vous pris la bonne R_mesure ?
Pas manqués seulement à haute vitesse Tension d’alimentation trop basse Augmentez VMOT ; le courant n’aidera pas
Pas manqués seulement en accélération Rampe trop agressive Baissez l’accélération, ou augmentez Vref
Bruyant à chaque pas Pas entier — broches MS en l’air Attachez MS1–MS3 au haut
Marche sur table, échoue dans le cadre Fil de fin de course ou STEP captant du bruit Éloignez les fils de signal des câbles moteur

A4988, ou les alternatives ?

Pilote Courant Micro-pas Bruit Choisissez-le quand
A4988 1 A / 1,5 A refroidi 1/16 Audible Bon marché, omniprésent, bien documenté
DRV8825 1,5 A / 2,2 A refroidi 1/32 Audible Il faut plus de courant ou des pas plus fins
TMC2208 ~1,2 A 1/256 Quasi silencieux Le bruit compte
TMC2209 ~1,7 A 1/256 Quasi silencieux Le bruit compte, plus prise d’origine sans capteur
L298N 2 A — — Moteurs CC. Pas de régulation de courant.
TB6612FNG 1,2 A — — Moteurs CC, efficacement

Les lignes L298N et TB6612FNG figurent parce que les deux fiches techniques mentionnent les pas-à-pas, et les deux en feront techniquement tourner un. Ni l’un ni l’autre ne régule le courant, donc une fraction du couple et beaucoup de chaleur perdue. Ce sont des pilotes de moteurs CC ; utilisez-les pour entraîner des roues.

Les pilotes TMC valent le surcoût dès que la machine vit quelque part où on peut l’entendre. Même travail, forme de courant plus douce, et une imprimante équipée fait du bruit de ventilateur au lieu du bruit moteur.

Où il est utilisé

Ce pilote entraîne les deux axes de la construction traceur, et bien le régler est une étape du parcours mouvement de précision. Le guide complet de câblage et Vref détaille la procédure pas à pas.

Explorer le graphe

Utilisé dans ces réalisations

Projets, parcours d'apprentissage et simulateurs qui intègrent le composant A4988 Stepper Driver.

Comparer

Alternatives

Questions

FAQ : A4988 Stepper Driver

Comment calculer Vref pour un A4988 ?

Vref égale le courant de phase voulu, fois la valeur des résistances de mesure, fois huit. Pour une cible de 1,2 A sur une carte à résistances 0,1 ohm, cela fait 1,2 × 0,1 × 8 = 0,96 V, mesuré entre le curseur du potentiomètre et la masse avec la carte alimentée en VMOT et le moteur déconnecté. Le détail critique est la résistance de mesure : les cartes sont livrées soit en 0,1 ohm marquées R100 soit en 0,05 ohm marquées R050, et se tromper double exactement le courant dans votre moteur.

Pourquoi mon A4988 chauffe au point de couper ?

Presque toujours la limite de courant est réglée trop haut. Un A4988 nu tient environ 1 A en continu ; avec radiateur et air en mouvement il gère autour de 1,5 A. Au-delà, sa protection thermique déclenche, le moteur s'arrête en plein mouvement, puis redémarre une fois refroidi — ce qui ressemble à des pertes de pas aléatoires. Mesurez de nouveau Vref avec la résistance de mesure réellement présente, collez le radiateur, et ventilez. S'il faut vraiment plus de 1,5 A, l'A4988 n'est pas la bonne pièce.

Quelle est la différence entre un A4988 et un DRV8825 ?

Le DRV8825 supporte plus de courant (environ 1,5 A nu, 2,2 A refroidi), va jusqu'au 1/32 de pas au lieu du 1/16, et accepte une tension moteur plus élevée à 45 V. Il est compatible broche à broche, donc il se monte dans le même support — mais sa formule Vref est différente, Vref égale courant fois 0,5, et son potentiomètre tourne dans le sens inverse. L'échanger sans relire la formule est une façon courante de détruire un moteur.

Faut-il vraiment le condensateur sur VMOT ?

Oui. Un électrolytique de 100 µF entre VMOT et la masse, physiquement proche de la carte, est exigé plutôt que recommandé. Le hacheur tire le courant par à-coups violents, et sans capacité réservoir proche, l'inductance de vos fils d'alimentation transforme ces à-coups en pics de tension qui dépassent la limite de 35 V de la puce. Les cartes qui meurent dès la mise sous tension en sont généralement mortes.

Que font MS1, MS2 et MS3 si on les laisse en l'air ?

Elles ont des rappels internes vers le bas, donc les laisser flottantes sélectionne le pas entier — 200 pas par tour et un moteur qui résonne à chaque pas. Attachez les trois au haut pour le 1/16 de pas, ce qu'utilisent la plupart des montages. Cela ne rend pas la machine plus précise en charge, mais cela stoppe la résonance, donc moins de bruit et un meilleur état de surface. Le coût est seize fois plus d'impulsions par millimètre à émettre pour votre microcontrôleur.

Un A4988 peut-il piloter un moteur CC ou un servomoteur ?

Non. C'est un pilote de pas-à-pas bipolaire : il attend deux bobines et les pilote avec une séquence de courant spécifique. Un moteur CC exige un pont en H comme le L298N ou le TB6612FNG ; un servomoteur loisir exige un signal PWM 50 Hz et aucun pilote. L'interface STEP et DIR de l'A4988 n'a aucun sens pour l'un ou l'autre.

Pour aller plus loin

Références