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
| Hersteller | Texas Instruments |
|---|---|
| Teilenummer | L293D |
| Logik/IO-Spannung | 4,5 - 36 V |
| Versorgungsspannung | 4,5 - 36 V |
| Ausgangsstrom (pro Kanal) | 600 mA |
| Spitzenstrom (pro Kanal) | 1.2 A |
| PWM-Frequenzrichtlinien | 1 kHz - 10 kHz |
| Eingangslogikschwellen | 2 V (hoch), 0,8 V (tief) |
| Spannungsabfall / RDS(on)/ Sättigung | 1,5 V (max) |
| Thermische Grenzen | +150 °C (max) |
| Paket | DIP-16 |
| Hinweise / Varianten | Enthä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

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
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
DokumentationESP32 Tutorial 16/55 - SunFounder Motor-Dokumentationdocs.sunfounder.com
Dateien📁
Datenblatt (pdf)
-
L293d_Vierfach-Halbbrücken-Datenblatt
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB