Tutoriel ESP32 15/55 - Contrôle de la vitesse du moteur CC avec ESP32 L293D | Kit d'apprentissage IoT ESP32 de SunFounder
Tutoriel ESP32 15/55 - Contrôle de la vitesse du moteur CC avec ESP32 L293D | Kit d'apprentissage IoT ESP32 de SunFounder
Contrôler un moteur DC avec un ESP32 peut sembler intimidant, mais c'est tout à fait gérable avec les bons composants et une bonne compréhension. Dans ce tutoriel, nous allons créer un projet qui nous permettra de contrôler la vitesse et la direction d'un moteur DC en utilisant le driver de moteur L293D. À la fin, vous aurez un système fonctionnel qui peut faire tourner le moteur en avant et en arrière tout en ajustant sa vitesse. Pour une référence visuelle, n'oubliez pas de consulter la vidéo à (dans la vidéo à 00:00).
Matériel expliqué
Les principaux composants de ce projet incluent le microcontrôleur ESP32 et le driver de moteur L293D. L'ESP32 est un microcontrôleur puissant avec des capacités Wi-Fi et Bluetooth intégrées, ce qui le rend adapté aux applications IoT. Il peut contrôler divers composants matériels, y compris des moteurs, grâce à ses broches GPIO. Le L293D est un driver de moteur à double pont en H qui vous permet de contrôler la direction et la vitesse de deux moteurs à courant continu. Chaque pont en H peut entraîner un moteur dans les deux sens en inversant la polarité de la tension appliquée aux bornes du moteur. De plus, le L293D peut gérer un courant allant jusqu'à 600 mA par canal, ce qui le rend adapté aux moteurs de petite à moyenne taille.
Détails de la fiche technique
| Fabricant | Texas Instruments |
|---|---|
| Numéro de pièce | L293D |
| Tension logique/IO | 2,5 - 7 V |
| Tension d'alimentation | 4,5 - 36 V |
| Courant de sortie (par canal) | 600 mA (typ.) |
| Courant de crête (par canal) | 1,2 A (max) |
| Guide sur la fréquence PWM | 20 kHz (typ.) |
| Seuils logiques d'entrée | 0,8 V (élevé), 2,0 V (bas) |
| Chute de tension / RDS(on)/ saturation | 1,5 V (max) |
| Limites thermiques | 150 °C (max) |
| Paquet | 16-DIP |
| Remarques / variantes | Conducteur demi-H quadruple |
- Assurez un bon refroidissement pour les applications à courant élevé.
- Découplez l'alimentation avec des condensateurs pour prévenir les surtensions.
- Soyez prudent avec le câblage pour éviter une polarité inversée.
- Utilisez la PWM pour le contrôle de la vitesse afin d'éviter la surchauffe.
- Vérifiez la tension nominale du moteur pour éviter tout dommage.
Instructions de câblage

Pour câbler l'ESP32 et le pilote de moteur L293D, commencez par connecter l'alimentation. Connectez la broche 16 du L293D au terminal positif de votre alimentation, et la broche 4 à la terre. Ensuite, connectez le moteur : un terminal à la broche 3 et l'autre à la broche 6 du L293D. Pour les signaux de contrôle, connectez la broche GPIO 13 de l'ESP32 à la broche 2 du L293D et la broche GPIO 14 à la broche 7. Enfin, assurez-vous de connecter la terre de l'ESP32 à la terre du L293D pour garantir une référence commune. Si la vidéo mentionne un câblage alternatif (dans la vidéo à 05:00), assurez-vous de suivre les changements spécifiques montrés.
Exemples de code et guide étape par étape
Le code pour contrôler le moteur consiste à définir les broches pour le moteur et à configurer leurs modes. Voici un extrait de la fonction de configuration :
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
Dans cet extrait, nous définissons les broches de contrôle du moteur comme des constantes et les configurons en sorties dans la fonction setup. C'est crucial car cela prépare les broches à contrôler le moteur. La fonction loop est l'endroit où le comportement du moteur est contrôlé. Voici une partie clé de la boucle :
void loop() {
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(2000);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, HIGH);
delay(2000);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(3000);
}
Ce code fait tourner le moteur dans une direction pendant 2 secondes, puis inverse la direction pendant encore 2 secondes, et enfin arrête le moteur pendant 3 secondes. Cette boucle se répétée indéfiniment, permettant un contrôle continu. Pour des informations plus détaillées et le code complet, référez-vous au programme complet qui se charge en bas de l'article.
Démonstration / À quoi s'attendre
Après avoir réussi à câbler et à télécharger le code, vous devriez voir le moteur tourner dans une direction pendant 2 secondes, changer de direction pendant encore 2 secondes, puis s'arrêter pendant 3 secondes. Si le moteur ne répond pas comme prévu, vérifiez les problèmes courants tels que la polarité inversée ou des connexions de broches incorrectes (dans la vidéo à 08:00). Cette configuration offre un moyen simple de contrôler la vitesse et la direction d'un moteur CC en utilisant l'ESP32 et le L293D.
Horodatages vidéo
- 00:00 Début
- 2:01 Introduction au moteur à courant continu
- 6:14 Pilote de moteur L293D
- 9:17 Documents du projet.
- 11:04 Explication du câblage
- 14:41 Contrôle de moteur Arduino avec ESP32
- 17:10 Sélection des ports Arduino pour la carte ESP32
- 18:52 Démonstration du projet
- 22:08 Contrôle de la vitesse du moteur avec ESP32
- 26:22 Démo de Contrôle de Vitesse
- 28:01 Code Arduino de contrôle de la vitesse et de la direction
- 29:05 Démonstration de la vitesse et de la direction
#define motor1A 13
#define motor2A 14
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin as an output.
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
// Rotate
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(2000);
// Rotate in the opposite direction
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, HIGH);
delay(2000);
// Stop
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(3000);
}
Common Course Links
Common Course Files
Ce dont vous pourriez avoir besoin
-
Amazon
-
eBayAchetez une puce L293D sur eBay.ebay.us
-
AliExpressAchetez le circuit intégré pilote de moteur L293D sur AliExpress.s.click.aliexpress.com
Ressources et références
-
DocumentationTutoriel ESP32 15/55 - Documentation de contrôle de moteur SunFounderdocs.sunfounder.com
Fichiers📁
Fiche technique (pdf)
-
L293d_Quadruple_half_bridge_fiche_technique
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB