ESP32 - Gleichstrommotor
Dieses Tutorial zeigt dir, wie man den ESP32 verwendet, um einen Gleichstrommotor mit dem L298N-Motortreiber zu steuern. Im Detail werden wir lernen, wie man die Geschwindigkeit und die Richtung eines Gleichstrommotors steuert. Wir werden lernen, wie man einen einzelnen Gleichstrommotor steuert und anschließend zwei Gleichstrommotoren mit einem einzigen L298N-Motortreiber steuert.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Gleichstrommotor
Pinbelegung des Gleichstrommotors
Ein Gleichstrommotor enthält zwei Drähte: Minus(schwarz), und Plus(rot)

Wie ein Gleichstrommotor funktioniert
Die Richtung und Geschwindigkeit des Gleichstrommotors werden davon bestimmt, wie wir ihm Strom zuführen. Die untenstehenden Bilder zeigen die detaillierte Beziehung zwischen Leistung und Geschwindigkeit/Richtung.

Beim Einsatz von PWM gilt: Je größer das Tastverhältnis des PWM-Signals, desto schneller dreht sich der Motor.
Wie man die Geschwindigkeit und Richtung eines Gleichstrommotors mit dem ESP32 steuert
Zuerst arbeitet der Gleichstrommotor mit einer hohen Spannung, die den ESP32 beschädigen kann ⇒ Wir können den Gleichstrommotor nicht direkt mit dem ESP32 verbinden. Wir benötigen einen Hardware-Treiber zwischen dem Gleichstrommotor und dem ESP32. Der Treiber übernimmt drei Aufgaben:
- Schutz des ESP32 vor Hochspannung
- Vom ESP32 empfangenes Signal, um die Polung der Stromversorgung zu ändern und die Drehrichtung des Motors zu steuern.
- Die PWM-Signale vom ESP32 (Strom und Spannung) verstärken, um die Drehzahl des Motors zu steuern

Es gibt viele Motortreiber für Gleichstrommotoren. In diesem Tutorial wird der L298N-Treiber verwendet.
Über den L298N-Treiber
Ein einzelner L298N-Treiber kann zwei Gleichstrommotoren oder einen Schrittmotor steuern. Dieses Tutorial verwendet diesen Treiber, um den Gleichstrommotor zu steuern.
L298N-Treiber-Pinbelegung
Das unten gezeigte Bild zeigt die Pinbelegung des L298N-Treibers.

Die detaillierte Erklärung zu jedem Pin ist in diesem Arduino - DC motor Tutorial verfügbar.
Ein einzelner L298N-Treiber kann zwei Gleichstrommotoren unabhängig voneinander steuern:
- Der erste Motor (genannt Motor A) wird über die Pins IN1, IN2, ENA, OUT1, OUT2 gesteuert.
- Der zweite Motor (genannt Motor B) wird über die Pins IN3, IN4, ENB, OUT3, OUT4 gesteuert.
Wie man die Geschwindigkeit eines Gleichstrommotors mit dem L298N-Treiber steuert
Es ist einfach, die Geschwindigkeit des Gleichstrommotors zu steuern, indem man ein PWM-Signal an den ENA/ENB-Pin des L298N erzeugt. Das können wir tun, indem wir:
- Den digitalen Ausgangspin des ESP32 mit dem ENA/ENB-Pin des L298N verbinden
- Ein PWM-Signal an den ENA/ENB-Pin erzeugen, indem die [analogWrite()]-Funktion verwendet wird. Dieses PWM-Signal durchläuft den L298N-Treiber und verstärkt Strom und Spannung, bevor es zum DC-Motor gelangt
Der Wert von speed liegt zwischen 0 und 255. Wenn der Wert 255 beträgt, läuft der Motor mit maximaler Geschwindigkeit. Wenn der Wert 0 ist, stoppt der Motor.
Wie man die Richtung eines Gleichstrommotors über den L298N-Treiber steuert
Die Drehrichtung des Gleichstrommotors A kann über die Pins IN1 und IN2 gesteuert werden. Die folgende Tabelle zeigt den Zusammenhang zwischen der Drehrichtung des Motors A und dem Signal an den Pins IN1 und IN2.
IN1 pin | IN2 pin | Direction |
---|---|---|
HIGH | LOW | DC Motor A rotates in clockwise direction |
LOW | HIGH | DC Motor A rotates in anticlockwise direction |
HIGH | HIGH | DC Motor A stops |
LOW | LOW | DC Motor A stops |
Ebenso ist die untenstehende Tabelle für den DC-Motor B.
IN3 pin | IN4 pin | Direction |
---|---|---|
HIGH | LOW | DC Motor B rotates in clockwise direction |
LOW | HIGH | DC Motor B rotates in anticlockwise direction |
HIGH | HIGH | DC Motor B stops |
LOW | LOW | DC Motor B stops |
Lass uns lernen, wie man es programmiert, um es zu steuern. Nehmen wir zum Beispiel den Motor A. Der Motor B ist ähnlich.
- Den Motor A im Uhrzeigersinn steuern.
- Die Drehrichtung des Motors A gegen den Uhrzeigersinn einstellen.
※ Notiz:
Die Drehrichtung des Gleichstrommotors ist umgekehrt, wenn die Verdrahtung zwischen dem DC-Motor und dem L298N-Treiber in umgekehrter Reihenfolge liegt. In diesem Fall tauschen Sie die Pins OUT1 und OUT2.
Wie man einen Gleichstrommotor stoppt
Es gibt zwei Möglichkeiten, einen Gleichstrommotor zu stoppen.
- Die Geschwindigkeit auf 0 setzen
- Steuerung der IN1- und IN2-Pins auf denselben niedrigen oder hohen Pegel
- Oder
So steuert man einen Gleichstrommotor mit dem L298N-Treiber.
Verdrahtungsdiagramm
Es gibt drei Jumper auf dem L298N-Modul. Entfernen Sie alle Jumper, bevor Sie die Verkabelung vornehmen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.
ESP32-Code
Schauen wir uns den untenstehenden Code an, der der Reihe nach Folgendes tut:
- Der ESP32 steuert die Drehzahl des Gleichstrommotors zunehmend.
- Der ESP32 kehrt die Drehrichtung des Gleichstrommotors um.
- Der ESP32 senkt schrittweise die Drehzahl des Gleichstrommotors.
- Der ESP32 stoppt den Gleichstrommotor.
Schnelle Schritte
- Wenn dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie wie man die Umgebung für ESP32 in der Arduino IDE einrichtet.
- Entfernen Sie alle drei Jumper am L298N-Modul.
- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Kompilieren und laden Sie den Code auf das ESP32-Board, indem Sie in der Arduino IDE auf die Hochladen-Schaltfläche klicken.
- Beobachten Sie den DC-Motor; Sie werden Folgendes sehen:
- Der DC-Motor wird beschleunigt und dreht sich während 2 Sekunden mit Höchstgeschwindigkeit.
- Die Drehrichtung des DC-Motors kehrt sich um.
- Der DC-Motor dreht sich für 2 Sekunden in der entgegengesetzten Richtung mit Höchstgeschwindigkeit.
- Der DC-Motor wird abgebremst.
- Der DC-Motor stoppt für 2 Sekunden.
- Der obige Vorgang wird unendlich oft wiederholt.
※ Notiz:
Dieses Tutorial erklärt dir, wie du die Drehzahl des Gleichstrommotors relativ steuern kannst. Um die absolute Drehzahl (Umdrehungen pro Sekunde) zu regeln, ist der Einsatz eines PID-Reglers sowie das Feedback eines Encoders erforderlich.
Wie man zwei DC-Motoren mit dem L298N-Treiber steuert
(kommt bald)
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.