Utilisation d'un pilote de moteur L298N pour contrôler un moteur pas à pas à 4 fils
Dans ce tutoriel, nous allons explorer comment contrôler un moteur pas à pas 4 fils en utilisant le pilote de moteur L298N en conjonction avec un Arduino. Le L298N est un pilote à double pont en H polyvalent qui nous permet de contrôler efficacement le sens et la vitesse des moteurs pas à pas. À la fin de ce guide, vous disposerez d'une configuration fonctionnelle capable de faire tourner le moteur pas à pas dans les deux sens et de contrôler sa vitesse à l'aide d'un potentiomètre.


Pour vous aider à mieux comprendre le processus, je vous recommande de regarder la vidéo associée, qui présente une démonstration visuelle du câblage et du codage (dans la vidéo à 01:30).
Le matériel expliqué
Le pilote de moteur L298N est conçu pour contrôler des moteurs en vous permettant de les faire tourner dans les deux sens. Il utilise une configuration en pont en H, ce qui lui permet d'inverser la polarité de la tension appliquée au moteur et donc de changer son sens de rotation. Ce pilote peut supporter une tension d'alimentation allant jusqu'à 46 V et un courant continu de 2 A par canal, ce qui le rend adapté à de nombreuses applications.
Dans notre configuration, nous utiliserons quatre broches de commande pour piloter le moteur pas à pas. Les broches principales sontENAetENB, qui doit être réglé sur HIGH (5 V) pour activer le driver. Les brochesIN1,IN2,IN3, etIN4contrôlera les états des enroulements du moteur, lui permettant d'effectuer un pas dans la direction souhaitée.
Détails de la fiche technique
| Fabricant | STMicroelectronics |
|---|---|
| Numéro de pièce | L298N |
| Tension logique/E/S | 5 V |
| Tension d'alimentation | 5-46 V (VS) |
| Courant de sortie (par canal) | 2 A max par canal (en continu) |
| Courant de crête (par canal) | 3 A max |
| Recommandations de fréquence PWM | 1 kHz à 20 kHz |
| Seuils logiques d'entrée | 0,8 V (bas), 2,0 V (haut) |
| Chute de tension / RDS(on)/ saturation | 1,5 V max |
| Limites thermiques | 150 °C maximum |
| Paquet | DIP-15 |
| Notes / variantes | Disponible également en versions plates (L298P) |
- Assurer
ENAetENBsont connectés à 5 V pour un fonctionnement correct. - Utilisez un dissipateur thermique adéquat pour les applications à courant élevé afin d'éviter la surchauffe.
- Assurez une masse commune entre l'Arduino et le pilote de moteur.
- Faites attention à la polarité des connexions pour éviter d'endommager le moteur ou le contrôleur.
- Installez des condensateurs de découplage près des broches d'alimentation pour filtrer les parasites.
- Ajustez la fréquence PWM en fonction des spécifications du moteur pour des performances optimales.
Instructions de câblage

Pour câbler le pilote de moteur L298N à l'Arduino et au moteur pas à pas, commencez par brancher l'alimentation. Connectez leVINbroche sur le L298N à votre source d'alimentation 12 V. Ensuite, connectez leGNDbroche sur le L298N à la masse de votre alimentation et aussi à la masse de l'Arduino
Maintenant, pour les broches de commande, connectezENAsur la broche 2 de l'Arduino etENBà la broche 3. Ensuite, connectezIN1à la broche 8,IN2vers la broche 9,IN3à la broche 10, etIN4À la broche 11 de l'Arduino. Enfin, connectez les fils du moteur pas à pas aux bornes de sortie du L298N. Assurez-vous que les deux paires de fils du moteur sont correctement connectées aux sorties.
Exemples de code et guide pas à pas
Dans le code, nous incluons d'abord leStepper.hBibliothèque pour simplifier le contrôle du moteur pas à pas. Nous définissons le nombre total de pas par révolution, ce qui est crucial pour un mouvement précis. Les identifiants clés dans le code incluentstepsPerRevolution, qui définit le nombre de pas nécessaires pour une rotation complète, etmyStepper, qui initialise l'objet stepper avec les broches spécifiées.
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); // initialize the stepper libraryCet extrait initialise le moteur pas à pas avec les broches appropriées. Dans lesetup()Dans la fonction, nous réglons la vitesse du moteur et activons le driver en mettant les broches 2 et 3 à HIGH.
void setup() {
myStepper.setSpeed(300); // set the speed at 60 rpm
pinMode(2,OUTPUT); // for EN1
digitalWrite(2,HIGH); // enable EN1
pinMode(3,OUTPUT); // for EN2
digitalWrite(3,HIGH); // enable EN2
}Dans leloop()La fonction fait effectuer au moteur une révolution dans le sens horaire, puis dans le sens antihoraire, avec un délai entre les deux. Cela vous permet d'observer le fonctionnement du moteur.
void loop() {
myStepper.step(stepsPerRevolution); // step one revolution in one direction
delay(500); // wait half a second
myStepper.step(-stepsPerRevolution); // step one revolution in the other direction
delay(500); // wait half a second
}Cet extrait montre comment contrôler le moteur pour qu'il tourne dans les deux sens. Le code complet est fourni ci-dessous dans l'article pour votre référence.
Démonstration / À quoi s'attendre
Une fois que tout est correctement câblé et que le code est téléchargé, vous devriez voir le moteur pas à pas effectuer une révolution complète dans un sens, puis une révolution complète dans le sens inverse. De plus, si vous intégrez le potentiomètre pour le contrôle de la vitesse, le fait de le régler modifiera la vitesse de rotation du moteur. Faites attention au courant du moteur ; à mesure que vous augmentez la vitesse, le moteur peut absorber davantage de courant, ce qui peut entraîner une surchauffe s'il n'est pas correctement géré (dans la vidéo à 09:45).
Si le moteur ne tourne pas comme prévu, vérifiez le câblage pour vous assurer que toutes les connexions sont bien fixées et correctement orientées. Vérifiez également que la tension d'alimentation est appropriée pour votre moteur pas à pas.
Horodatages vidéo
- 00:00- Introduction
- 01:30- Explication du câblage
- 05:00- Aperçu du code
- 09:45- Démonstration de la commande du moteur
Ce dont vous pourriez avoir besoin
-
Amazon
-
Amazon
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Aucun fichier disponible.