Comment utiliser L293D Pilote de moteur avec Arduino
L’utilisation du pilote de moteur L293D avec Arduino offre une solution efficace pour le contrôle de moteurs à courant continu, de moteurs pas à pas et de servomoteurs dans une variété de projets électroniques. Ce composant électronique permet de gérer la vitesse, la direction et la précision des moteurs, ce qui en fait un outil essentiel pour les amateurs d’électronique et les ingénieurs. Dans cet article, nous explorerons en détail comment utiliser le L293D avec Arduino pour piloter différents types de moteurs.
Présentation du Pilote de Moteur L293D
L293D pilote de moteur est une puce d’intégration qui agit comme un pont en H (H-Bridge) pour contrôler la rotation des moteurs. Il est largement utilisé dans les projets Arduino en raison de sa simplicité d’utilisation et de sa fiabilité. Ce pilote de moteur peut être alimenté avec une tension de 5 à 36 V pour les moteurs, tandis que la tension de la carte Arduino doit être de 5 V.
Principales Caractéristiques du L293D :
- Contrôle de la Direction : Il permet de contrôler la direction de rotation des moteurs en inversant simplement les signaux de contrôle. Cela signifie que vous pouvez faire tourner le moteur dans les deux sens.
- Contrôle de la Vitesse : Il offre un contrôle précis de la vitesse des moteurs à courant continu en ajustant la largeur de l’impulsion (PWM). Cela permet de régler la vitesse selon les besoins du projet.
- Support pour Plusieurs Moteurs : Il possède deux H-Bridges, ce qui signifie qu’il peut contrôler deux moteurs à courant continu ou un moteur pas à pas à quatre fils. Il est également équipé d’une puce 74HC595 pour étendre les broches de commande.
-
L293D Double pont en H, Pilote de moteur55,00 DH
-
Produit en promotionNema17 moteur Pas à Pas pour CNCLe prix initial était : 190,00 DH.149,00 DHLe prix actuel est : 149,00 DH.
-
Moteur à courant continu + appui des Roues40,00 DH
Alimentation du L293D
Le L293D peut être alimenté de deux manières différentes en fonction de vos besoins :
- Alimentation Partagée : Vous pouvez utiliser un seul bloc d’alimentation pour le pilote et la carte Arduino en connectant le fil d’alimentation à la broche “EXT_PWR” sur le pilote. Assurez-vous de placer la borne “PWR” sur le L293D dans la bonne position. Cette configuration est pratique lorsque vous avez une source d’alimentation unique.
- Alimentation Séparée : Il est recommandé de fournir une alimentation séparée à la carte Arduino et au L293D. Dans ce cas, la carte Arduino est alimentée via USB, tandis que les moteurs sont alimentés par une source de courant continu connectée à la broche “EXT_PWR”. N’oubliez pas de retirer la borne “PWR” pour éviter tout problème de tension.
Broches de L293D
Contrôle de Moteur à Courant Continu avec le L293D et Arduino
Les moteurs à courant continu (CC) sont omniprésents dans de nombreuses applications électroniques, des robots aux systèmes d’automatisation industrielle. Le L293D s’avère être un choix fiable pour les piloter avec Arduino. Pour commencer, il est essentiel de configurer la connexion matérielle. Vous aurez besoin d’un Arduino Uno, du L293D, d’une source d’alimentation 12V et du moteur CC que vous souhaitez contrôler.
Câblage
L293D permet de contrôler deux moteurs à courant continu. Connectez les fils du moteur aux bornes M1 et M2 pour le premier moteur, et M3 et M4 pour le second. Alimentez le L293D en utilisant la borne “EXT_PWR” avec une source 12V.
Code Arduino
Installez la bibliothèque “AFMotor.h” dans votre environnement Arduino pour faciliter la programmation. Voici le code :
#include <AFMotor.h> // Inclure la bibliothèque AFMotor AF_DCMotor moteur(4); // Spécifier le port auquel le moteur est connecté (1 - 4) void setup() { moteur.setSpeed(200); // Vitesse de rotation initiale moteur.run(RELEASE); // Arrêter le moteur } void loop() { uint8_t i; // Créer une variable "i" moteur.run(FORWARD); // Faire tourner le moteur en avant for (i = 0; i < 255; i++) // Accélérer le moteur de 0 à 255 { moteur.setSpeed(i); // Envoyer la vitesse delay(10); // Pause } for (i = 255; i != 0; i--) // Ralentir le moteur de 255 à 0 { moteur.setSpeed(i); // Envoyer la vitesse delay(10); // Pause } moteur.run(BACKWARD); // Faire tourner le moteur en arrière for (i = 0; i < 255; i++) // Accélérer le moteur de 0 à 255 { moteur.setSpeed(i); // Envoyer la vitesse delay(10); // Pause } for (i = 255; i != 0; i--) // Ralentir le moteur de 255 à 0 { moteur.setSpeed(i); // Envoyer la vitesse delay(10); // Pause } moteur.run(RELEASE); // Arrêter le moteur delay(1000); // Pause }
Ce code d’exemple démontre comment contrôler la direction du moteur à courant continu avec le L293D et Arduino. Vous pouvez ajuster la vitesse et les délais selon vos besoins.
Contrôle de Moteurs Pas à Pas NEMA 17 avec le L293D et Arduino
Les moteurs pas à pas sont essentiels pour de nombreuses applications nécessitant un contrôle précis de la rotation. Le NEMA 17 est un moteur pas à pas couramment utilisé. Pour l’utiliser avec le L293D et Arduino, assurez-vous de connecter correctement le moteur aux broches M3 et M4 du pilote. Alimentez le L293D avec une source de 12V.
Câblage
Code Arduino
Le code ci-dessous permet de contrôler un moteur pas à pas NEMA 17 :
#include <AFMotor.h> // Inclure la bibliothèque AFMotor const int stepsPerRevolution = 200; // Spécifier le nombre de pas par tour du moteur AF_Stepper moteur(stepsPerRevolution, 2); // Spécifier que le moteur est connecté aux ports 2 (M3 - M4) void setup() { moteur.setSpeed(10); // Vitesse du moteur en tours par minute } void loop() { moteur.step(100, FORWARD, SINGLE); moteur.step(100, BACKWARD, SINGLE); moteur.step(100, FORWARD, DOUBLE); moteur.step(100, BACKWARD, DOUBLE); moteur.step(100, FORWARD, INTERLEAVE); moteur.step(100, BACKWARD, INTERLEAVE); moteur.step(100, FORWARD, MICROSTEP); moteur.step(100, BACKWARD, MICROSTEP); }
Ce code illustre comment contrôler un moteur pas à pas NEMA 17 en utilisant le L293D et Arduino. Vous pouvez ajuster le nombre de pas, la direction et la vitesse en fonction de votre projet.
Contrôle de Servomoteurs SG90S avec le pilote de moteur et Arduino
Les servomoteurs, tels que le SG90S, sont largement utilisés pour le positionnement précis dans les projets de robotique et d’automatisation. Avec le L293D et Arduino, vous pouvez facilement contrôler les servomoteurs.
Câblage
Pour commencer, connectez le fil de commande du servomoteur à la broche 10 de l’Arduino. Pas besoin d’une alimentation externe, car le L293D tire son énergie de l’Arduino. Utilisez la bibliothèque “Servo.h” pour simplifier le contrôle du servomoteur :
Code Arduino
#include <Servo.h> // Inclure la bibliothèque Servo Servo myservo; // Créer un objet servo int pos = 0; // Créer une variable void setup() { myservo.attach(10); // Spécifier le port auquel le servo est connecté } void loop() { for(pos = 0; pos <= 180; pos += 1) // Augmenter l'angle de 0 à 180 { myservo.write(pos); // Envoyer les données delay(15); // Pause } for(pos = 180; pos >= 0; pos -= 1) // Diminuer l'angle de 180 à 0 { myservo.write(pos); // Envoyer les données delay(15); // Pause } }
Ce code permet de faire pivoter le servomoteur SG90S de 0 à 180 degrés et vice-versa, créant ainsi un mouvement de va-et-vient.
-
Servomoteur Mini TowerPro SG90 9G30,00 DH
-
Arduino DUE avec cable USB500,00 DH
-
Arduino Uno R3 avec câble USB120,00 DH
Conclusion
Le L293D est un composant essentiel pour le contrôle de moteurs dans les projets Arduino. Il offre une grande flexibilité pour le contrôle de la vitesse, de la direction et de la précision des moteurs à courant continu, des moteurs pas à pas et des servomoteurs. En utilisant la bibliothèque “AFMotor.h” et en suivant les bonnes pratiques de câblage, vous pouvez facilement intégrer le L293D dans vos projets électroniques et créer des systèmes de contrôle moteur intelligents et personnalisés.
Lien outilles
- Téléchargement de Arduino logiciel “Arduino IDE ” : https://www.arduino.cc/en/software
- Pour plus d’articles : https://www.moussasoft.com/tutoriels-electroniques
- Twitter: Moussa Lhoussaine (@Moussasoft_com) / Twitter