Description
⚙️ Moteur Pas à Pas 28BYJ-48 12 V avec Réducteur — Positionnement précis pour Arduino
Le 28BYJ-48 12 V est un moteur pas à pas unipolaire compact équipé d’un réducteur mécanique. Il permet de contrôler précisément la position, la vitesse et le sens de rotation dans les projets d’automatisation, de robotique et de prototypage.
Grâce à son connecteur à cinq fils, il peut être associé facilement à un driver ULN2003A et commandé par Arduino, ESP32, Raspberry Pi Pico ou un autre microcontrôleur.
✨ Points forts
- ⚙️ Déplacement précis, étape par étape
- 🔋 Fonctionnement sous 12 V DC
- 🔄 Rotation dans les deux sens
- 🧩 Réducteur mécanique intégré
- 🎯 Bon maintien de position à l’arrêt
- 🔌 Connecteur femelle à cinq fils
- 🤖 Compatible avec Arduino et autres microcontrôleurs
- 📏 Format compact et facile à intégrer
- 🔇 Fonctionnement relativement silencieux
🔧 Caractéristiques techniques
- Modèle : 28BYJ-48
- Type : moteur pas à pas unipolaire
- Tension nominale : 12 V DC
- Nombre de phases : 4
- Nombre de fils : 5
- Résistance d’enroulement indicative : 200 Ω ±7 % à 25 °C
- Rapport de réduction nominal : environ 1:64
- Angle de pas indiqué : 5,625°/64
- Nombre de demi-pas par tour de sortie : environ 4096
- Fréquence nominale indicative : 100 Hz
- Couple indicatif : environ 450 gf·cm
- Niveau sonore indicatif : jusqu’à environ 35 dB
- Connecteur : femelle 5 broches compatible ULN2003
- Sens de rotation : horaire et antihoraire
Les valeurs de couple, de réduction et de nombre de pas peuvent légèrement varier selon le fabricant et le lot.
🧠 Comment fonctionne un moteur pas à pas ?
Contrairement à un moteur DC classique, le 28BYJ-48 ne tourne pas simplement lorsqu’il reçoit une tension continue. Ses quatre enroulements doivent être alimentés successivement selon une séquence précise.
Chaque changement de séquence fait avancer le rotor d’un petit angle. Le réducteur mécanique diminue ensuite la vitesse et augmente le couple disponible sur l’axe de sortie.
Le microcontrôleur génère la séquence, tandis que le driver ULN2003A fournit le courant nécessaire aux bobines.
📊 Moteur pas à pas ou moteur DC classique ?
| Critère | Moteur DC | 28BYJ-48 |
|---|---|---|
| Contrôle de position | Difficile sans encodeur | ✅ Précis par comptage des pas |
| Réglage de la vitesse | Par PWM | ✅ Par fréquence des pas |
| Maintien de position | ❌ Non | ✅ Oui, lorsqu’il est alimenté |
| Réducteur intégré | Selon le modèle | ✅ Oui |
| Commande électronique | Pont en H ou transistor | ULN2003 recommandé |
| Rotation continue rapide | ✅ Adaptée | Plus lente |
| Petits mécanismes précis | Possible | ✅ Très adapté |
🔌 Driver nécessaire
Le moteur ne doit pas être branché directement sur les broches d’un Arduino. Les sorties du microcontrôleur ne peuvent pas fournir le courant nécessaire aux enroulements.
Utilisez une carte ULN2003A, qui intègre :
- Quatre canaux de commande pour les phases
- Des transistors de puissance
- Des diodes de protection contre les tensions inductives
- Des LED indiquant l’activation des bobines
- Un connecteur adapté au moteur 28BYJ-48
⚠️ Le driver ULN2003A n’est pas inclus avec cette fiche du moteur seul, sauf indication contraire dans l’offre sélectionnée.
🧰 Matériel nécessaire pour le tutoriel
- 1 × Arduino Uno ou Nano
- 1 × moteur 28BYJ-48 12 V
- 1 × driver ULN2003A
- 1 × alimentation externe 12 V DC
- Fils de connexion
- Bibliothèque Arduino AccelStepper
🔧 Branchement avec Arduino et ULN2003A
| ULN2003A | Arduino / alimentation |
|---|---|
| IN1 | D8 |
| IN2 | D9 |
| IN3 | D10 |
| IN4 | D11 |
| + | Positif de l’alimentation 12 V |
| – | Négatif de l’alimentation 12 V |
| Connecteur moteur | Connecteur 5 fils du 28BYJ-48 |
Reliez également le GND de l’Arduino au négatif de l’alimentation 12 V afin d’obtenir une masse commune.
⚠️ Ne branchez jamais le 12 V sur la broche 5 V de l’Arduino et n’alimentez pas le moteur depuis cette broche.
💻 Code Arduino — Un tour dans chaque sens
Installez la bibliothèque AccelStepper depuis le gestionnaire de bibliothèques de l’Arduino IDE.
#include <AccelStepper.h>
// Ordre adapté au 28BYJ-48 avec ULN2003 :
// IN1, IN3, IN2, IN4
AccelStepper moteur(
AccelStepper::HALF4WIRE,
8, 10, 9, 11
);
const long demiPasParTour = 4096;
void setup() {
moteur.setMaxSpeed(600);
moteur.setAcceleration(200);
moteur.moveTo(demiPasParTour);
}
void loop() {
moteur.run();
if (moteur.distanceToGo() == 0) {
delay(500);
// Inverser la destination à chaque arrivée
moteur.moveTo(-moteur.currentPosition());
}
}
Ce programme effectue environ un tour dans un sens, marque une courte pause, puis revient dans le sens opposé.
📐 Précision du nombre de pas
La valeur 4096 demi-pas par tour est une approximation couramment utilisée. Selon la construction exacte du réducteur, le rapport réel peut être légèrement différent de 64:1.
Pour une application exigeant un positionnement angulaire très précis :
- Commandez plusieurs tours complets.
- Mesurez l’erreur obtenue.
- Ajustez la constante
demiPasParTour. - Ajoutez un capteur de référence ou un fin de course pour retrouver la position initiale.
⚠️ Conseils d’utilisation
- Utilisez uniquement une alimentation adaptée à la version 12 V.
- Ne confondez pas ce modèle avec le 28BYJ-48 de 5 V.
- Ne bloquez pas l’axe pendant que le moteur est alimenté.
- Réduisez la vitesse si le moteur perd des pas ou vibre sans tourner.
- Utilisez une accélération progressive lorsque la charge est importante.
- Débranchez l’alimentation avant de modifier le câblage.
- Évitez de maintenir inutilement les bobines alimentées afin de limiter l’échauffement.
🎯 Applications principales
- 🤖 Petits robots et mécanismes automatisés
- 🌬️ Positionnement de volets et clapets
- 📷 Plateformes rotatives pour caméra
- 🔬 Instruments et dispositifs de laboratoire
- 🏠 Systèmes domotiques
- 📡 Orientation de capteurs et d’antennes légères
- 💧 Petites vannes et distributeurs
- 🖨️ Mécanismes d’entraînement
- 🪟 Contrôle de stores et d’aérations
- 🎓 Projets éducatifs Arduino
Mots clés: motor, stepper.









