Tutoriel ESP32 16/55 - Mini pompe à eau utilisant l'ESP32 et le L293D | Kit d'apprentissage IoT ESP32 de SunFounder

Tutoriel ESP32 16/55 - Mini pompe à eau utilisant l'ESP32 et le L293D | Kit d'apprentissage IoT ESP32 de SunFounder

Dans ce tutoriel, nous allons apprendre comment contrôler une pompe à eau de 5V en utilisant le microcontrôleur ESP32 et le driver de moteur L293D. Ce projet est une excellente introduction à l'utilisation des drivers de moteur avec des microcontrôleurs, vous permettant de contrôler des dispositifs qui nécessitent plus de courant que ce qu'un microcontrôleur peut fournir directement. À la fin de ce tutoriel, vous disposerez d'une pompe à eau fonctionnelle qui peut être activée et désactivée de manière programmatique.

L'ESP32 est un microcontrôleur puissant qui dispose de capacités Wi-Fi et Bluetooth intégrées, ce qui le rend adapté aux applications IoT. Le pilote de moteur L293D est utilisé pour contrôler la pompe à eau en gérant le courant élevé nécessaire pour faire fonctionner le moteur. Cette configuration nous permet de démarrer et d'arrêter la pompe tout en garantissant que l'ESP32 reste protégé contre une consommation de courant excessive.

Matériel expliqué

Dans ce projet, nous utilisons le microcontrôleur ESP32, qui est connu pour sa polyvalence et ses options de connectivité. Il peut fonctionner comme un Arduino tout en offrant des fonctionnalités supplémentaires telles que le Wi-Fi et le Bluetooth. Le pilote de moteur L293D agit comme une interface entre l'ESP32 et la pompe à eau, permettant de contrôler le fonctionnement de la pompe sans surcharger le microcontrôleur.

Le L293D dispose de deux ponts en H, ce qui lui permet de contrôler la direction et la vitesse du moteur. Chaque pont en H peut entraîner un moteur dans chaque direction, ce qui le rend adapté aux applications nécessitant un contrôle du moteur. Dans ce cas, nous aurons seulement besoin d'activer la pompe pour qu'elle fonctionne dans une seule direction.

Détails de la fiche technique

FabricantTexas Instruments
Numéro de pièceL293D
Tension logique/IO4,5 - 36 V
Tension d'alimentation4,5 - 36 V
Courant de sortie (par canal)600 mA
Courant de crête (par canal)1,2 A
Directives de fréquence PWM1 kHz - 10 kHz
Seuils logiques d'entrée2 V (haut), 0,8 V (bas)
Chute de tension / RDS(on)/ saturation1,5 V (max)
Limites thermiques+150 °C (max)
ColisDIP-16
Notes / variantesComprend des diodes intégrées pour la protection des charges inductives.

  • Assurez une dissipation de chaleur adéquate pour un fonctionnement continu.
  • Utilisez des condensateurs découplés pour une alimentation stable.
  • Soyez prudent avec la tension d'entrée pour éviter tout dommage.
  • Implémentez le PWM pour le contrôle de la vitesse si nécessaire.
  • Vérifiez le câblage pour éviter les courts-circuits, surtout avec les charges inductives.

Instructions de câblage

ESP32-16-motor-pump_wiring

Pour câbler l'ESP32 et le pilote de moteur L293D avec la pompe à eau, suivez ces étapes avec attention. Tout d'abord, connectez l'alimentation au L293D. Connectez la broche 1 (broche d'activation pour le moteur A) et la broche 8 (Vcc2) à la source de tension positive (5V). Connectez la broche 4 (masse) à la masse de votre circuit.

Ensuite, connectez l'ESP32 au L293D. Connectez la broche GPIO 13 de l'ESP32 à la broche 2 (entrée 1) du L293D, et la broche GPIO 14 à la broche 7 (entrée 2). Enfin, connectez la pompe à eau à la broche 3 (sortie 1) et à la broche 6 (sortie 2) du L293D. Assurez-vous que toutes les connexions de masse sont reliées ensemble pour un fonctionnement correct. Si vous suivez ces instructions, votre câblage devrait être simple et fonctionnel.

Exemples de code et guide étape par étape

Dans le code, nous définissons les connexions de broche pour le contrôle du moteur. Les identifiantsmotor1Aetmotor2Acorrespondent aux broches GPIO 13 et 14 sur l'ESP32, respectivement. Ces broches contrôleront la pompe à eau via le driver L293D.

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

Dans lesetup()fonction, nous initialisons les broches de contrôle du moteur en tant que sorties. Cela garantit que nous pouvons envoyer des signaux au driver L293D pour contrôler la pompe. Leloop()la fonction puis contrôle le fonctionnement de la pompe.

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(5);
  
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // wait for a second
}

Dans leloop()fonction, nous fixonsmotor1Aà HAUT etmotor2Atrop bas pour démarrer la pompe. Après un court délai, nous arrêtons la pompe en mettant les deux broches à l'état bas. Ce cycle se répète indéfiniment, permettant à la pompe de fonctionner pendant une brève période puis de s'arrêter.

Démonstration / À quoi s'attendre

Une fois que vous avez terminé le câblage et téléchargé le code, vous devriez voir la pompe à eau s'activer et se désactiver en cycle. La pompe fonctionnera pendant une courte durée, puis s'arrêtera, créant un motif marche-arrêt. Assurez-vous que votre alimentation est adéquate pour les besoins de la pompe afin d'éviter tout problème (dans la vidéo à 09:30).

Horodatages vidéo

  • 00:00 Début
  • 1:50 Introduction au Projet
  • 3:17 Pourquoi avons-nous besoin du L293D avec Arduino ?
  • 5:47 Câblage pour la pompe à eau expliqué
  • 10:01 Code Arduino expliqué
  • 12:21 Sélectionner le port COM pour l'ESp32 sur Arduino IDE
  • 14:03 Démonstration du fonctionnement de la pompe
  • 15:25 Démonstration avec de l'eau

Images

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-16-motor-pump_wiring
ESP32-16-motor-pump_wiring
5V DC water pump
5V DC water pump
815-ESP32 Tutorial 16/55 - Arduino code to control DC water pump
Langue: C++
Copié !

Ressources et références

Fichiers📁

Fiche technique (pdf)