Robots d'atelier
Composants et capteurs

Moteur pas à pas 28BYJ-48 : caractéristiques et câblage

Par Thomas Ferrand · 14 novembre 2026

Le 28BYJ-48 est un petit moteur pas à pas unipolaire à quatre phases, doté d’un réducteur 1/64. Il fait 2 048 pas par tour d’axe en pas entiers et 4 096 en demi-pas. La version 5 V se pilote avec un driver ULN2003 et la bibliothèque Stepper, à condition de croiser l’ordre des broches dans le code.

Le 28BYJ-48 tourne dès qu’on lui envoie la bonne séquence. Les pièges tiennent à son nombre de pas, à sa tension, à son courant et à l’ordre des fils.

Caractéristiques du 28BYJ-48

La version 5 V compte quatre phases et un rapport de réduction de 1/64. Son angle de pas est noté 5,625°/64 : 5,625° au rotor en demi-pas, démultipliés par 64 à l’axe de sortie. Le driver à base d’ULN2003A permet de le commander directement avec un microcontrôleur, sans interface de puissance.

Donnée Valeur annoncée
Tension nominale 5 V continu
Phases 4, unipolaire
Réduction 1/64
Résistance d’une bobine 50 Ω ± 7 % à 25 °C
Courant par bobine non précisé ; environ 100 mA sous 5 V (5 V ÷ 50 Ω)
Couple supérieur à 34,3 mN·m à 120 Hz
Caractéristiques du 28BYJ-48 en version 5 V.
Pas par tour du 28BYJ-48 : 64 pas sur le rotor, 2 048 pas à l’axe en pas entiers, 4 096 en demi-pas, réduction 1/64
Selon le mode choisi, l’axe de sortie fait 2 048 ou 4 096 pas par tour.

Brancher le moteur sur Arduino

Branchez le moteur sur le connecteur blanc du driver, puis les entrées IN1 à IN4 sur les broches 10 à 13 de la carte. L’alimentation 5 V et la masse arrivent sur les deux bornes du driver, et cette masse doit être reliée à celle de la carte. Une carte Nano suffit pour ce montage.

Branchement du driver ULN2003 : IN1 à IN4 sur les broches 10 à 13, constructeur Stepper avec l’ordre 10, 12, 11, 13
Les entrées du driver et l’ordre à donner au constructeur.

Le piège classique tient dans cet ordre : avec IN1 à IN4 sur les broches 10 à 13, le constructeur reçoit 10, 12, 11, 13. Dans le mauvais ordre, l’axe vibre ou recule sans avancer.

#include <Stepper.h>
const int pasParTour = 2048;
Stepper moteur(pasParTour, 10, 12, 11, 13);
void setup() { moteur.setSpeed(5); }
void loop() {
  moteur.step(pasParTour);
  delay(500);
  moteur.step(-pasParTour);
  delay(500);
}

Ce programme fait un tour dans un sens, puis un tour dans l’autre, à 5 tours par minute. Le signe moins inverse la rotation.

5 V ou 12 V : quelle version avez-vous ?

Plusieurs moteurs se vendent sous le même nom. Les versions 5 V annoncent 50 Ω par bobine ; le modèle 12 V du fabricant Fulling est donné pour 300 Ω. Un 12 V alimenté en 5 V ne risque rien, mais il perd en couple.

Version Bobine Réduction
5 V courante 50 Ω 1/64, soit 2 048 pas
12 V 300 Ω 1/64, soit 2 048 pas
Les deux versions décrites par les fiches techniques du 28BYJ-48.

Mesurez donc une bobine au multimètre pour savoir quelle version vous avez, puis vérifiez le nombre de pas par tour en comptant les tours. Ce réflexe de contrôler la valeur réelle rejoint celui du DHT11 sur Arduino, où un résultat absurde trahit presque toujours le câblage.

Courant et alimentation

La fiche ne donne pas de courant nominal, mais la loi d’Ohm sur une bobine de 50 Ω sous 5 V donne environ 100 mA. Avec deux bobines alimentées en même temps, comme dans la séquence de la bibliothèque Stepper, comptez jusqu’à 200 mA environ. Pour un essai court, le 5 V de la carte peut suffire ; pour un usage prolongé, une alimentation 5 V séparée évite de surcharger la carte, à condition de relier les masses.

Questions fréquentes

Combien de pas par tour fait le 28BYJ-48 ?

2 048 en pas entiers et 4 096 en demi-pas pour la version 5 V à réduction 1/64, mesurés à l’axe de sortie. Le rotor, lui, en compte 64 en demi-pas.

Quelle tension pour un 28BYJ-48 ?

5 V pour la version courante. Une version 12 V existe ; alimentée en 5 V, elle tourne avec moins de couple.

Quelle bibliothèque Arduino utiliser ?

La bibliothèque Stepper, fournie par Arduino, pilote les moteurs unipolaires et bipolaires. Elle attend le nombre de pas par tour, puis les quatre broches.

Pourquoi le moteur vibre sans tourner ?

L’ordre des broches est la première cause : il faut 10, 12, 11, 13 si IN1 à IN4 sont sur les broches 10 à 13. Vérifiez ensuite le fil rouge central, relié au 5 V.

Peut-on se passer du driver ?

Non : une broche de la carte ne peut pas alimenter directement les bobines. Le driver ULN2003 joue ce rôle d’interface de puissance entre la carte et le moteur.

Branchez le montage, lancez le programme et comptez les tours à la main sur un repère collé à l’axe. Un écart important signale plutôt un mauvais ordre de broches ou une autre version du moteur.

Source

Arduino, bibliothèque Stepper, dépôt arduino-libraries/Stepper : commande de moteurs pas à pas unipolaires ou bipolaires. Relevé le 14 novembre 2026.

Fiches techniques : MikroElektronika, moteur 5 V 28BYJ-48 ; Changzhou Fulling Motor, 28BYJ48-12-300-01. Photo de couverture : Kushagra Keshari, CC BY-SA 4.0, via Wikimedia Commons.

Thomas Ferrand
Thomas Ferrand

Technicien en électronique, encadrant de club robotique — qui écrit ici.