Arduino Nano ESP32 - Gleichstrommotor
Dieses Tutorial zeigt, wie man den Arduino Nano ESP32 verwendet, um einen Gleichstrommotor mit dem L298N-Motortreiber zu steuern. Im Detail lernen wir, wie man die Geschwindigkeit und die Richtung eines Gleichstrommotors steuert. Wir lernen, wie man einen einzelnen Gleichstrommotor steuert, und betreiben anschließend zwei Gleichstrommotoren mit einem einzigen L298N-Motortreiber.
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
Pinbelegung des Gleichstrommotors
Ein Gleichstrommotor hat zwei Drähte: Negativ(schwarz), und Positiv(rot)

Wie ein Gleichstrommotor funktioniert
Die Drehrichtung und Drehzahl eines Gleichstrommotors hängen davon ab, wie wir ihm Strom zuführen. Die untenstehenden Bilder zeigen die detaillierte Beziehung zwischen Leistung und Drehzahl/Drehrichtung.

Im Fall der Verwendung von PWM gilt: Je größer das Pulsweitenverhältnis des PWM-Signals ist, desto schneller dreht sich der Motor.
So steuern Sie die Geschwindigkeit und Richtung eines Gleichstrommotors mit dem Arduino Nano ESP32
Zunächst arbeitet der Gleichstrommotor mit einer hohen Spannung, die den Arduino Nano ESP32 beschädigen kann. Wir können den Gleichstrommotor nicht direkt an den Arduino Nano ESP32 anschließen. Wir benötigen einen Hardwaretreiber zwischen dem Gleichstrommotor und dem Arduino Nano ESP32. Der Treiber übernimmt drei Aufgaben:
- Schutz des Arduino Nano ESP32 vor Hochspannung
- Empfangen des Signals vom Arduino Nano ESP32, um die Polung der Stromversorgung zu ändern und so die Drehrichtung des Motors zu steuern.
- PWM-Signal vom Arduino Nano ESP32 (Strom und Spannung) verstärken, um die Drehzahl des Motors zu steuern.

Es gibt viele Gleichstrom-Motortreiber. Dieses Tutorial wird den L298N-Treiber verwenden.
Ü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 für jeden Pin ist in diesem Arduino - Gleichstrommotor Tutorial verfügbar.
Ein einzelner L298N-Treiber kann zwei Gleichstrommotoren unabhängig voneinander steuern:
- Der erste Motor (genannt Motor A) wird durch die Pins IN1, IN2, ENA, OUT1, OUT2 gesteuert.
- Der zweite Motor (genannt Motor B) wird durch die Pins IN3, IN4, ENB, OUT3, OUT4 gesteuert.
Wie man die Geschwindigkeit eines Gleichstrommotors über den 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. Wir können dies tun, indem:
- Verbindung des digitalen Ausgangspins des ESP32 mit dem ENA/ENB-Pin des L298N
- Erzeugen eines PWM-Signals an den ENA/ENB-Pin durch Verwendung der analogWrite()-Funktion. Dieses PWM-Signal durchläuft den L298N-Treiber und wird dort in Strom und Spannung verstärkt, bevor es zum DC-Motor gelangt
Der Wert von speed liegt zwischen 0 und 255. Wenn er 255 ist, läuft der Motor mit maximaler Geschwindigkeit. Wenn er 0 ist, stoppt der Motor.
Wie man die Richtung eines Gleichstrommotors über den L298N-Treiber steuert
Die Drehrichtung des Gleichstrommotors A kann durch die Pins IN1 und IN2 gesteuert werden. Die folgende Tabelle zeigt den Zusammenhang zwischen der Drehrichtung des Motors 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 Gleichstrommotor 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 |
Lernen wir, wie man ihn programmiert, um ihn zu steuern. Nehmen wir zum Beispiel den Motor A. Der Motor B ist ähnlich.
- Den Motor A im Uhrzeigersinn drehen.
- Steuerung des Motors A in Richtung gegen den Uhrzeigersinn.
※ Notiz:
Die Drehrichtung des Gleichstrommotors ist umgekehrt, wenn die Verkabelung zwischen dem Gleichstrommotor und dem L298N-Treiber in umgekehrter Reihenfolge erfolgt. In diesem Fall tauschen Sie OUT1- und OUT2-Pins.
Wie man einen DC-Motor stoppt
Es gibt zwei Möglichkeiten, einen Gleichstrommotor zu stoppen.
- Die Geschwindigkeit auf 0 einstellen
- Steuern der Pins IN1 und IN2 auf denselben LOW- oder HIGH-Pegel
- oder
Wie man einen Gleichstrommotor mit dem L298N-Treiber steuert.
Verdrahtungsdiagramm
Es gibt drei Jumper auf dem L298N-Modul. Entfernen Sie alle davon, bevor Sie die Verdrahtung durchführen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino Nano ESP32-Code
Schauen wir uns den untenstehenden Code an, der Folgendes der Reihe nach ausführt:
- Arduino Nano ESP32 steuert die Drehzahl des Gleichstrommotors zunehmend.
- Arduino Nano ESP32 invertiert die Drehrichtung des Gleichstrommotors.
- Arduino Nano ESP32 senkt kontinuierlich die Drehzahl des Gleichstrommotors.
- Arduino Nano ESP32 stoppt den Gleichstrommotor.
Schnelle Schritte
- Wenn Sie Arduino Nano ESP32 zum ersten Mal verwenden, sehen Sie wie man die Umgebung für Arduino Nano 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 Sie den Code und laden Sie ihn auf das Arduino Nano ESP32-Board hoch, indem Sie auf die Schaltfläche Upload in der Arduino IDE 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 wird umgekehrt.
- Der DC-Motor dreht sich für 2 Sekunden in der Gegenrichtung mit Höchstgeschwindigkeit.
- Der DC-Motor wird abgebremst.
- Der DC-Motor stoppt für 2 Sekunden.
- Der obige Prozess wird unendlich oft wiederholt.
※ Notiz:
Dieses Tutorial gibt Anleitungen dazu, wie man die Geschwindigkeit des Gleichstrommotors relativ steuert. Um die absolute Geschwindigkeit (Umdrehungen pro Sekunde) zu steuern, benötigt man einen PID-Regler und das Feedback von einem Encoder.
Wie man zwei Gleichstrommotoren 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.