ESP8266 - Gleichstrommotor
Dieses Tutorial erklärt Ihnen, wie Sie den ESP8266 verwenden, um einen Gleichstrommotor zu steuern. Im Detail werden wir lernen:
- Wie ein Gleichstrommotor funktioniert
- Wie man ESP8266 und den L298N-Treiber verwendet, um einen Gleichstrommotor zu steuern
- Wie man den ESP8266 programmiert, um die Geschwindigkeit und die Richtung eines Gleichstrommotors zu steuern
- Wie man den ESP8266 programmiert, um zwei Gleichstrommotoren gleichzeitig zu steuern
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Gleichstrommotor
DC-Motor-Pinbelegung
Ein Gleichstrommotor hat zwei Kabel, das positive Kabel ist üblicherweise rot und das negative Kabel schwarz.

Wie es funktioniert
Beim Kauf eines Gleichstrommotors ist es wichtig, die Betriebsspannung zu bestimmen, bei der er betrieben wird. Zum Beispiel betrachten wir einen 12-V-Gleichstrommotor.
Wenn Sie den 12-V-Gleichstrommotor mit einer 12-V-Stromquelle betreiben:
- Verbinden Sie 12 V und GND mit dem positiven Draht bzw. dem negativen Draht: Der Gleichstrommotor dreht sich mit maximaler Geschwindigkeit im Uhrzeigersinn.
- Verbinden Sie 12 V und GND mit dem negativen Draht bzw. dem positiven Draht: Der Gleichstrommotor dreht sich mit maximaler Geschwindigkeit gegen den Uhrzeigersinn.
Wie bereits erwähnt, ändert sich die Drehrichtung, indem man den Pol zwischen zwei Drähten des Gleichstrommotors vertauscht. Dies ist eine Methode, die verwendet wird, um die Drehrichtung des Gleichstrommotors zu steuern, nicht manuell, sondern durch Programmierung.
Wenn die dem Gleichstrommotor zugeführte Spannung unter 12 V liegt, dreht sich der Motor zwar, aber nicht mit Höchstgeschwindigkeit. Dies bedeutet, dass wir durch Anpassen der Spannung der Stromversorgung die Geschwindigkeit des Gleichstrommotors verändern können. Dennoch wird dieser Ansatz aufgrund der Komplexität der Steuerung der Versorgungsspannung nicht üblicherweise verwendet. Daher wird die Spannung der Stromversorgung konstant gehalten und die Geschwindigkeit des Gleichstrommotors durch ein PWM-Signal geregelt. Je größer das Tastverhältnis des PWM-Signals, desto schneller dreht sich der Gleichstrommotor.

So steuern Sie einen DC-Motor mit dem ESP8266
Die Steuerung eines Gleichstrommotors umfasst zwei Komponenten: Drehzahl und Drehrichtung. Der ESP8266 kann ein PWM-Signal erzeugen, hat jedoch eine geringe Spannung und Stromstärke, weshalb er nicht zur Steuerung des Gleichstrommotors verwendet werden kann. Um die Lücke zwischen dem ESP8266 und dem Gleichstrommotor zu überbrücken, wird ein Hardware-Treiber benötigt. Dieser Treiber übernimmt zwei Aufgaben:
- Verstärkung des PWM-Signals vom ESP8266 hinsichtlich Strom und Spannung zur Geschwindigkeitsregelung
- Empfang des Steuersignals vom ESP8266, um die Polarität der Stromversorgung für die Richtungssteuerung umzuschalten

※ Notiz:
- Dieses Tutorial kann für jeden Gleichstrommotor verwendet werden. Ein 12-V-Gleichstrommotor ist nur ein Beispiel.
- Wenn Sie einen 5-V-Gleichstrommotor steuern, auch wenn der ESP8266-Pin 5 V ausgibt (dies entspricht der gleichen Spannung wie der Gleichstrommotor), benötigen Sie dennoch einen Treiber zwischen dem ESP8266 und dem Gleichstrommotor, da der ESP8266-Pin nicht genügend Strom für den Gleichstrommotor liefert.
Es gibt zahlreiche Arten von Chips, und Module wie L293D und L298N können als DC-Motortreiber verwendet werden. In diesem Tutorial verwenden wir den L298N-Treiber.
Über den L298N-Treiber
Der L298N-Treiber kann verwendet werden, um Gleichstrommotoren und Schrittmotoren zu steuern. Dieses Tutorial zeigt Ihnen, wie Sie ihn verwenden, um einen Gleichstrommotor zu steuern.
L298N Treiber-Pinbelegung

Der L298N-Treiber ist in der Lage, zwei Gleichstrommotoren unabhängig voneinander und gleichzeitig zu steuern, die als Motor A und Motor B bezeichnet werden. Dieser Treiber verfügt insgesamt über 13 Pins.
Die gemeinsamen Pins beider Motoren:
- VCC-Pin: Dieser Pin versorgt den Motor mit Strom, mit einer Spannung von 5 bis 35 V.
- GND-Pin: Dies ist ein gemeinsamer Masse-Pin, der mit 0 V (GND) verbunden werden muss.
- 5V-Pin: Dieser Pin versorgt das L298N-Modul mit Strom und kann vom ESP8266 mit 5 V versorgt werden.
Motor A-Pins (Kanal A):
- ENA-Anschlüsse: Diese Anschlüsse können verwendet werden, um die Geschwindigkeit von Motor A zu steuern. Durch das Entfernen des Jumpers und das Anschließen an einen PWM-Eingang kann die Geschwindigkeit von Motor A angepasst werden.
- IN1- und IN2-Pins: Diese Pins dienen dazu, die Drehrichtung von Motor A zu steuern. Wenn einer dieser Pins auf HIGH gesetzt wird und der andere auf LOW, dreht sich Motor A. Sind beide Pins entweder HIGH oder LOW, bewegt sich Motor A nicht.
- OUT1- und OUT2-Pins: Diese Pins sind mit Motor A verbunden.
Motor-B-Pins (Kanal B):
- Diese Pins dienen dazu, Motor B mit Strom zu versorgen.
- ENB-Pins: Dieser Pin kann an einen PWM-Eingang angeschlossen werden, um die Geschwindigkeit von Motor B zu steuern. Das Entfernen des Jumpers ermöglicht dies.
- IN3- und IN4-Pins: Diese Pins dienen der Bestimmung der Drehrichtung von Motor B. Wenn einer von ihnen HIGH ist und der andere LOW, dreht sich Motor B. Sind beide Eingänge HIGH oder LOW, stoppt Motor B.
- OUT3- und OUT4-Pins: Diese Pins sind mit Motor B verbunden und versorgen ihn mit Strom.
Der L298N-Treiber hat zwei Eingangsspannungen:
- Eine für den DC-Motor, mit einem Spannungsbereich von 5 bis 35 V, angeschlossen an die VCC- und GND-Pins.
- Eine für den internen Betrieb des L298N-Moduls, mit einem Spannungsbereich von 5 bis 7 V, angeschlossen an die 5V- und GND-Pins.
Entfernen Sie alle Jumper vom L298N-Treiber, um es zu vereinfachen. Dies ist notwendig, da die Jumper für fortgeschrittene Anwendungen oder andere Zwecke verwendet werden.
Wir können zwei Gleichstrommotoren unabhängig voneinander gleichzeitig steuern, indem wir einen ESP8266 und einen L298N-Treiber verwenden. Um jeden Motor zu steuern, benötigen wir lediglich drei Pins des ESP8266.
※ Notiz:
Der verbleibende Teil dieses Tutorials wird sich darauf konzentrieren, einen Gleichstrommotor über Kanal A zu steuern. Ähnliche Schritte können unternommen werden, um den anderen Gleichstrommotor zu steuern.
Wie man die Geschwindigkeit eines Gleichstrommotors über den L298N-Treiber steuert
Es ist einfach, die Drehzahl eines Gleichstrommotors zu regeln, indem man ein PWM-Signal an den ENA-Pin des L298N anlegt. Dies lässt sich erreichen durch:
- Einen ESP8266-Pin an den ENA-Pin des L298N anschließen
- Ein PWM-Signal an den ENA-Pin erzeugen, indem die Funktion analogWrite() verwendet wird. Der L298N-Treiber verstärkt das PWM-Signal zum Gleichstrommotor.
Die Geschwindigkeit kann von 0 bis 255 reichen. Wenn die Geschwindigkeit 0 beträgt, kommt der Motor zum Stillstand. Bei einer Geschwindigkeit von 255 dreht sich der Motor mit maximaler Geschwindigkeit.
Wie man die Drehrichtung eines Gleichstrommotors über den L298N-Treiber steuert
Die Drehrichtung eines Motors kann durch das Anlegen eines logischen HIGH- bzw. LOW-Signals an die Pins IN1 und IN2 eingestellt werden. Die untenstehende Tabelle zeigt, wie man die Drehrichtung in beiden Kanälen steuert.
IN1 pin | IN2 pin | Direction |
---|---|---|
LOW | LOW | Motor A stops |
HIGH | HIGH | Motor A stops |
HIGH | LOW | Motor A spins Clockwise |
LOW | HIGH | Motor A spins Anti-Clockwise |
Entsprechend:
- ESP8266-Code zum Drehen im Uhrzeigersinn.
- ESP8266-Code zum Drehen gegen den Uhrzeigersinn.
※ Notiz:
Die Drehrichtung des Gleichstrommotors kann umgekehrt werden, indem die OUT1- und OUT2-Pins in entgegengesetzter Weise verbunden werden.
Wie man einen Gleichstrommotor zum Stillstand bringt
Es gibt zwei Methoden, einen Gleichstrommotor zu stoppen:
- Reduzieren Sie die Geschwindigkeit auf Null.
- Setzt beide Pins IN1 und IN2 auf denselben Wert, entweder LOW oder HIGH.
- Oder
Wie man einen Gleichstrommotor mit dem L298N-Treiber steuert.
Verdrahtungsdiagramm
Es ist wichtig, alle drei Jumper vom L298N-Modul zu entfernen, bevor die Kabel angeschlossen werden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.
ESP8266-Code
Der folgende Code tut Folgendes:
- Erhöht die Geschwindigkeit eines Gleichstrommotors
- Verändert die Richtung
- Verringert die Geschwindigkeit eines Gleichstrommotors
- Hält den Motor an
Schnelle Schritte
Um mit dem ESP8266 in der Arduino-IDE zu beginnen, folgen Sie diesen Schritten:
- Schau dir das Tutorial Wie man die ESP8266-Umgebung in der Arduino IDE einrichtet an, falls dies dein erster Umgang mit ESP8266 ist.
- Verbinde die Bauteile wie im Diagramm gezeigt.
- Verbinde das ESP8266-Board mit deinem Computer über ein USB-Kabel.
- Öffne die Arduino IDE auf deinem Computer.
- Wähle das richtige ESP8266-Board aus, zum Beispiel NodeMCU 1.0 (ESP-12E-Modul), und seinen jeweiligen COM-Port.
- Entferne alle drei Jumper vom L298N-Modul.
- Kopiere den Code und öffne ihn in der Arduino IDE.
- Klicke im Arduino IDE auf die Schaltfläche Upload, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
- Du solltest Folgendes beobachten:
- Der Gleichstrommotor wird sich beschleunigen und dann eine Sekunde lang mit seiner Höchstgeschwindigkeit drehen.
- Die Drehrichtung des Gleichstrommotors wird sich ändern.
- Der Gleichstrommotor wird eine Sekunde lang mit maximaler Geschwindigkeit in die entgegengesetzte Richtung drehen.
- Der Gleichstrommotor wird langsamer.
- Der Gleichstrommotor wird eine Sekunde lang anhalten.
- Dieser Ablauf wiederholt sich.
※ Notiz:
Dieses Tutorial zeigt dir, wie du die Geschwindigkeit eines Gleichstrommotors im Verhältnis zu seiner maximalen Geschwindigkeit steuerst. Um die absolute Geschwindigkeit (in Umdrehungen pro Sekunde) zu steuern, benötigen wir einen PID-Regler und einen Encoder. Die Steuerung der absoluten Geschwindigkeit des Gleichstrommotors wird in einem separaten Tutorial behandelt.
Wie man zwei DC-Motoren mit dem L298N-Treiber steuert
Demnächst verfügbar!
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.