ESP32 Tutorial 16/55 - Mini-Wasserpumpe mit ESP32 und L293D | SunFounder's ESP32 IoT Lernkit

ESP32 Tutorial 16/55 - Mini-Wasserpumpe mit ESP32 und L293D | SunFounder's ESP32 IoT Lernkit

In diesem Tutorial lernen wir, wie man eine 5V-Wasserpumpe mit dem ESP32-Mikrocontroller und dem L293D-Motortreiber steuert. Dieses Projekt ist eine großartige Einführung in die Verwendung von Motortreibern mit Mikrocontrollern und ermöglicht es Ihnen, Geräte zu steuern, die mehr Strom benötigen, als ein Mikrocontroller direkt bereitstellen kann. Am Ende dieses Tutorials haben Sie eine funktionierende Wasserpumpe, die programmgesteuert aktiviert und deaktiviert werden kann.

Der ESP32 ist ein leistungsstarker Mikrocontroller, der mit integrierten Wi-Fi- und Bluetooth-Funktionen ausgestattet ist, was ihn für IoT-Anwendungen geeignet macht. Der L293D-Motortreiber wird verwendet, um die Wasserpumpe zu steuern, indem er den höheren Strom verwaltet, der zum Betrieb des Motors erforderlich ist. Diese Konfiguration ermöglicht es uns, die Pumpe ein- und auszuschalten, während sichergestellt wird, dass der ESP32 vor übermäßigem Stromverbrauch geschützt bleibt.

Hardware erklärt

In diesem Projekt nutzen wir den ESP32-Mikrocontroller, der für seine Vielseitigkeit und Konnektivitätsmöglichkeiten bekannt ist. Er kann wie ein Arduino fungieren und bietet zusätzliche Funktionen wie Wi-Fi und Bluetooth. Der L293D-Motortreiber fungiert als Schnittstelle zwischen dem ESP32 und der Wasserpumpe und ermöglicht die Steuerung des Pumpenbetriebs, ohne den Mikrocontroller zu überlasten.

Der L293D verfügt über zwei H-Brücken, die es ihm ermöglichen, die Richtung und die Geschwindigkeit des Motors zu steuern. Jede H-Brücke kann einen Motor in beide Richtungen antreiben, was sie für Anwendungen geeignet macht, bei denen eine Motorsteuerung erforderlich ist. In diesem Fall müssen wir die Pumpe nur aktivieren, damit sie in eine Richtung läuft.

Technische Datenblattdetails

HerstellerTexas Instruments
TeilenummerL293D
Logik/IO-Spannung4,5 - 36 V
Versorgungsspannung4,5 - 36 V
Ausgangsstrom (pro Kanal)600 mA
Spitzenstrom (pro Kanal)1.2 A
PWM-Frequenzrichtlinien1 kHz - 10 kHz
Eingangslogikschwellen2 V (hoch), 0,8 V (tief)
Spannungsabfall / RDS(on)/ Sättigung1,5 V (max)
Thermische Grenzen+150 °C (max)
PaketDIP-16
Hinweise / VariantenEnthält integrierte Dioden zum Schutz vor induktiven Lasten.

  • Stellen Sie eine ordnungsgemäße Wärmeableitung für den kontinuierlichen Betrieb sicher.
  • Verwenden Sie Entkopplungskondensatoren für eine stabile Stromversorgung.
  • Seien Sie vorsichtig mit der Eingangsspannung, um Schäden zu vermeiden.
  • Implementieren Sie PWM zur Geschwindigkeitsregelung, falls erforderlich.
  • Überprüfen Sie die Verkabelung, um Kurzschlüsse zu vermeiden, insbesondere bei induktiven Lasten.

Verdrahtungsanleitungen

ESP32-16-motor-pump_wiring

Um den ESP32 und den L293D-Motortreiber mit der Wasserpumpe zu verdrahten, befolgen Sie diese Schritte sorgfältig. Zuerst schließen Sie die Stromversorgung an den L293D an. Verbinden Sie Pin 1 (Aktivierungs-Pin für Motor A) und Pin 8 (Vcc2) mit der positiven Spannungsquelle (5V). Verbinden Sie Pin 4 (Masse) mit der Masse Ihres Schaltkreises.

Verbinden Sie als Nächstes den ESP32 mit dem L293D. Schließen Sie den GPIO-Pin 13 vom ESP32 an Pin 2 (Eingang 1) des L293D an und GPIO-Pin 14 an Pin 7 (Eingang 2). Schließlich schließen Sie die Wasserpumpe an Pin 3 (Ausgang 1) und Pin 6 (Ausgang 2) des L293D an. Stellen Sie sicher, dass alle Masseverbindungen für einen ordnungsgemäßen Betrieb miteinander verbunden sind. Wenn Sie diese Anweisungen befolgen, sollte Ihre Verdrahtung einfach und funktionsfähig sein.

Code-Beispiele und Schritt-für-Schritt-Anleitungen

Im Code definieren wir die Pinverbindungen für die Motorsteuerung. Die Bezeichnermotor1Aundmotor2Aentsprechen den GPIO-Pins 13 und 14 des ESP32. Diese Pins steuern die Wasserpumpe über den L293D-Treiber.

#define motor1A 13
#define motor2A 14

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

In dersetup()Funktion, wir initialisieren die Motorsteuerungs-Pins als Ausgänge. Dies stellt sicher, dass wir Signale an den L293D-Treiber senden können, um die Pumpe zu steuern. Dieloop()Die Funktion steuert den Betrieb der Pumpe.

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

In derloop()Funktion, wir setzenmotor1Azu HOCH undmotor2Azu niedrig, um die Pumpe zu starten. Nach einer kurzen Verzögerung stoppen wir die Pumpe, indem wir beide Pins auf LOW setzen. Dieser Zyklus wiederholt sich unendlich, wodurch die Pumpe für einen kurzen Zeitraum läuft und dann stoppt.

Demonstration / Was zu erwarten ist

Sobald Sie die Verkabelung abgeschlossen und den Code hochgeladen haben, sollten Sie sehen, dass die Wasserpumpe in einem Zyklus aktiviert und deaktiviert wird. Die Pumpe läuft für kurze Zeit und stoppt dann, wodurch ein Ein-Aus-Muster entsteht. Stellen Sie sicher, dass Ihre Stromversorgung den Anforderungen der Pumpe entspricht, um Probleme zu vermeiden (im Video um 09:30).

Video-Zeiten

  • 00:00 Start
  • 1:50 Projektvorstellung
  • 3:17 Warum brauchen wir den L293D mit Arduino?
  • 5:47 Verdrahtung für die Wasserpumpe erklärt
  • 10:01 Arduino-Code erklärt
  • 12:21 COM-Port für ESp32 im Arduino IDE auswählen
  • 14:03 Demonstration des Betriebs der Pumpe
  • 15:25 Demonstration mit Wasser

Bilder

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
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Datenblatt (pdf)