Le DRV8825 est un module porte-driver conçu par Texas Instruments et conditionné sur une petite carte au format Pololu. Il fait tourner un moteur pas à pas bipolaire en traduisant une simple impulsion STEP et un niveau de sens DIR en courant moteur, avec découpage en micropas. Il se plante directement sur une plaque d’essai ou sur un support de carte prévu à cet effet, et sa tension moteur accepte les alimentations de 12 V comme de 24 V couramment utilisées en impression 3D et en CNC.
Caractéristiques techniques
| Circuit | DRV8825 (Texas Instruments), module porte-driver au format Pololu |
|---|---|
| Tension moteur (VMOT) | 8,2 V à 45 V |
| Tension de la partie logique | 3,3 V à 5 V ; entrées STEP, DIR, EN compatibles 3,3 V |
| Courant par phase | jusqu’à 1,5 A sans dissipateur, 2,2 A avec le dissipateur fourni |
| Micro-pas | pas entier, 1/2, 1/4, 1/8, 1/16 et 1/32, réglables par les broches M0, M1, M2 |
| Résolution | moteur de 200 pas par tour : 1600 micropas par tour en 1/8, 6400 en 1/32 |
| Interface | STEP et DIR, plus EN actif à l’état bas ; aucune bibliothèque n’est nécessaire |
| Réglage du courant | potentiomètre de la carte (tension Vref), courant limite égal à Vref multiplié par 2 |
| Protections | limitation de courant, coupure thermique, surveillance de la tension moteur |
| Brochage | 16 broches au pas de 2,54 mm, deux rangées de 8 |
| Carte | environ 15 mm sur 20 mm, deux condensateurs de découplage et quatre résistances de mesure |
Brochage de la carte
Les deux rangées se lisent ainsi, la carte tenue potentiomètre vers le haut :
- rangée logique : EN, M0, M1, M2, RST, SLP, STEP, DIR ;
- rangée puissance : VMOT, GND, B2, B1, A1, A2, GND, GND.
EN est actif à l’état bas : laissé à la masse, le driver est actif ; mis au niveau haut, il relâche le moteur. STEP reçoit une impulsion par micropas, DIR fixe le sens de rotation. RST et SLP ne doivent jamais rester en l’air : relier ces deux broches entre elles au niveau haut évite les redémarrages intempestifs du circuit.
Table de micro-pas
| M0 | M1 | M2 | Résolution |
|---|---|---|---|
| bas | bas | bas | pas entier |
| haut | bas | bas | 1/2 pas |
| bas | haut | bas | 1/4 de pas |
| haut | haut | bas | 1/8 de pas |
| bas | bas | haut | 1/16 de pas |
| haut | bas | haut | 1/32 de pas |
Les trois broches peuvent être câblées en dur, à la masse ou au niveau haut, ou pilotées par le microcontrôleur si la résolution doit changer en cours de fonctionnement. Passer de 1/8 à 1/32 quadruple le nombre d’impulsions nécessaires pour un même déplacement : la vitesse maximale au programme est divisée d’autant.
Réglage du courant moteur
Le potentiomètre de la carte fixe la tension de référence Vref, et donc le courant envoyé dans les bobines. La relation du module est simple : courant limite égal à Vref multiplié par 2. Pour faire tourner prudemment un petit moteur Nema 17, une Vref d’environ 0,5 V correspond donc à un courant limite de l’ordre de 1 A.
- mesurer la tension entre le curseur du potentiomètre et une masse, driver sous tension mais moteur à l’arrêt ;
- utiliser un tournevis isolé et ne toucher que la vis du potentiomètre : un contact accidentel sur les composants voisins peut endommager la carte ;
- régler la Vref sur un courant inférieur au courant nominal du moteur, jamais au maximum que le module supporte.
Le dissipateur fourni se colle sur le boîtier du circuit avec le ruban adhésif thermique livré. C’est lui qui fait passer le module de 1,5 A à 2,2 A par phase.
Applications
- Impression 3D : équipe les axes d’une CNC ou d’une imprimante montée sur une carte RAMPS 1.5, où il remplace les drivers en support ;
- CNC et gravure : se plante sur une carte CNC Shield V3 pour piloter les axes X, Y et Z depuis un Arduino ;
- Robotique : motorisation d’un bras ou d’un chariot à position répétable, la haute résolution en micropas réduisant les vibrations ;
- Automatisation : avance précise d’une bande, d’une table élévatrice ou d’un doseur.
Mini-projet : faire tourner un moteur pas à pas
Matériel
- un module DRV8825 et son dissipateur ;
- un moteur pas à pas bipolaire Nema 17 ;
- un Arduino Uno et son câble USB ;
- une alimentation moteur de 12 V, ici une alimentation 12 V ;
- un condensateur électrolytique de 100 µF au moins, à placer entre VMOT et GND ;
- une plaque d’essai et des fils de liaison.
Câblage
- VMOT sur le plus de l’alimentation moteur, GND sur la masse, avec le condensateur au plus près du module ;
- les deux bobines du moteur sur A1 et A2 pour la première, B1 et B2 pour la seconde ; pour repérer les paires, mesurer la continuité entre fils : une paire passe par les deux extrémités d’une même bobine ;
- STEP, DIR et EN sur trois entrées numériques du microcontrôleur ;
- M0, M1 et M2 à la masse ou au niveau haut selon la résolution choisie — ici M2 au niveau haut pour le 1/16 de pas ;
- RST et SLP reliés ensemble au niveau haut ;
- la masse de la partie logique et celle de la partie puissance sont communes.
Programme
/*
* Mini-projet : faire tourner un moteur pas a pas Nema 17
* avec un driver DRV8825 monte sur un Arduino Uno.
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const int BROCHE_STEP = 3;
const int BROCHE_DIR = 4;
const int BROCHE_EN = 5;
void setup() {
pinMode(BROCHE_STEP, OUTPUT);
pinMode(BROCHE_DIR, OUTPUT);
pinMode(BROCHE_EN, OUTPUT);
digitalWrite(BROCHE_EN, LOW); // niveau bas : le driver alimente le moteur
digitalWrite(BROCHE_DIR, HIGH); // sens de rotation numero 1
delay(5); // court instant de reveil du circuit
}
void loop() {
// M2 au niveau haut, donc 1/16 de pas : 3200 impulsions font un tour complet
for (int i = 0; i != 3200; i++) {
digitalWrite(BROCHE_STEP, HIGH);
delayMicroseconds(800);
digitalWrite(BROCHE_STEP, LOW);
delayMicroseconds(800);
}
// on inverse le sens et on refait un tour
if (digitalRead(BROCHE_DIR) == HIGH) {
digitalWrite(BROCHE_DIR, LOW);
} else {
digitalWrite(BROCHE_DIR, HIGH);
}
delay(500); // une demi-seconde de pause avant de repartir
}La durée de la pause entre deux impulsions fixe la vitesse : en la réduisant, le moteur accélère ; trop courte, il décroche et bourdonne sans tourner. Un moteur qui siffle sans bouger a le plus souvent un courant limite trop faible ou une bobine mal appairée, pas un programme faux.
Points d’attention
- Ne jamais débrancher le moteur driver sous tension. La coupure d’une bobine sur un circuit qui débite du courant peut détruire l’étage de puissance. Alimentation hors tension avant toute modification du câblage.
- Un condensateur de 100 µF au minimum sur VMOT. Sans lui, les pointes de commutation de l’alimentation font claquer le module au premier mouvement.
- Le dissipateur n’est pas décoratif. Au-delà de quelques centaines de milliampères, le circuit chauffe vite ; au-dessus de 1,5 A il le faut, et un ventilateur sur le caisson reste la meilleure garantie pour les travaux longs.
- Régler la Vref avant de lancer la première rotation, moteur à l’arrêt, puis vérifier la température du boîtier après quelques minutes : tiède est normal, brûlant ne l’est pas.
- La résolution et la vitesse se paient l’une l’autre : en 1/32 de pas le moteur demande quatre fois plus d’impulsions qu’en 1/8 pour la même distance, ce qui limite la vitesse atteignable avec un Arduino.
Questions fréquentes
Quelle différence avec un driver A4988 ?
Le driver A4988 se câble de la même façon et accepte les mêmes supports, mais il plafonne à 1/16 de pas et à 2 A par phase, contre 1/32 et 2,2 A pour le DRV8825. Le brochage est identique, en revanche les tables de micro-pas ne le sont pas : M0, M1, M2 d’un côté, MS1, MS2, MS3 de l’autre, et les combinaisons diffèrent. Reprendre un câblage d’A4988 sans relire la table est l’erreur la plus fréquente.
Faut-il un dissipateur et de la pâte thermique ?
Le dissipateur livré se pose sur le boîtier du circuit. Le ruban adhésif fourni suffit pour un usage courant ; de la pâte thermique donne un meilleur contact si le module travaille en permanence près de sa limite.
Le moteur chauffe, est-ce normal ?
Un moteur pas à pas chauffe par construction, même à l’arrêt, parce que ses bobines restent alimentées. Une température de 60 °C au boîtier est courante. Réduire la Vref et couper l’alimentation quand le moteur ne sert pas sont les deux gestes qui prolongent sa durée de vie.
Puis-je piloter un moteur plus puissant que 2,2 A ?
Non. Pour des courants supérieurs, un module externe comme le module TB6600 prend le relais, avec sa propre alimentation et ses propres entrées STEP et DIR : le programme reste identique.
À combiner avec
- Moteur pas à pas Nema 17 34 mm — le moteur bipolaire le plus courant pour ce driver ;
- Coupleur d’axe souple 5 mm / 8 mm — pour relier l’arbre du moteur à une vis trapézoïdale sans forcer sur les paliers ;
- Plaque d’essai 830 points — de quoi monter le câblage du mini-projet sans soudure.








