Arduino - Gleichstrommotor
In diesem Tutorial lernen wir:
- Wie ein Gleichstrommotor funktioniert.
- Wie man die Geschwindigkeit und die Richtung eines Gleichstrommotors steuert.
- Wie man einen Gleichstrommotor mit dem L298N-Treiber steuert.
- Wie man zwei Gleichstrommotoren mit dem L298N-Treiber steuert.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Gleichstrommotor
Pinbelegung des Gleichstrommotors
DC-Motor hat zwei Drähte:
- Positiver Draht: normalerweise rot
- Negativer Draht: normalerweise schwarz

Wie es funktioniert
Wenn Sie einen Gleichstrommotor kaufen, müssen Sie wissen, mit welcher Spannung er betrieben wird. Nehmen wir als Beispiel einen 12-V-Gleichstrommotor.
Wenn Sie den 12-V-Gleichstrommotor mit einer 12-V-Stromquelle betreiben:
- 12V und GND an den positiven Draht und den negativen Draht, jeweils: der Gleichstrommotor dreht sich mit maximaler Geschwindigkeit im Uhrzeigersinn
- 12V und GND an den negativen Draht und den positiven Draht, jeweils: der Gleichstrommotor dreht sich mit maximaler Geschwindigkeit gegen den Uhrzeigersinn
Wie oben beschrieben, ändert sich die Drehrichtung, wenn der Pol zwischen zwei Drähten des Gleichstrommotors vertauscht wird. Diese Methode wird verwendet, um die Drehrichtung des Gleichstrommotors zu steuern. Natürlich nicht durch manuelle Änderung, sondern durch Programmierung.
Wenn wir Gleichstrommotoren eine Versorgung unter 12 V geben, dreht sich der Motor zwar, erreicht aber nicht seine Höchstgeschwindigkeit. Das bedeutet, dass wir die Geschwindigkeit des Gleichstrommotors ändern können, indem wir die Spannung der Stromversorgung ändern. Diese Methode wird jedoch in der Praxis nicht verwendet, da es schwierig ist, die Spannung der Stromquelle zu steuern. Stattdessen legen wir die Spannung der Stromquelle fest und regeln die Geschwindigkeit des Gleichstrommotors über ein PWM-Signal. Je größer das PWM-Taktverhältnis ist, desto schneller dreht der Gleichstrommotor.

So steuern Sie einen Gleichstrommotor mit Arduino
Die Steuerung eines Gleichstrommotors umfasst zwei Faktoren: Geschwindigkeit und Richtung. Der Arduino kann das PWM-Signal erzeugen. Allerdings hat dieses PWM-Signal eine geringe Spannung und einen geringen Strom. Wir können es nicht verwenden, um den Gleichstrommotor zu steuern. Wir müssen einen Hardwaretreiber zwischen dem Arduino und dem Gleichstrommotor verwenden. Der Treiber erledigt zwei Aufgaben:
- Verstärke das PWM-Signal vom Arduino (Strom und Spannung) → zur Geschwindigkeitsregelung
- Empfange das Steuersignal vom Arduino, um den Pol des Netzteils umzuschalten → zur Richtungssteuerung

※ Notiz:
- Dieses Tutorial kann auf alle Gleichstrommotoren angewendet werden. Ein 12-V-Gleichstrommotor ist nur ein Beispiel.
- Wenn Sie einen 5-V-Gleichstrommotor steuern, gibt der Arduino-Pin zwar 5 V aus (das Gleiche wie die Versorgungsspannung des Gleichstrommotors), dennoch benötigen Sie einen Treiber zwischen Arduino und Gleichstrommotor, da der Arduino-Pin nicht genügend Strom für den Gleichstrommotor liefert.
Es gibt viele Arten von Chips; Module (z. B. L293D, 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. In diesem Tutorial lernen wir, wie man ihn verwendet, um den Gleichstrommotor zu steuern.
L298N Treiber-Pinbelegung

Der L298N-Treiber kann zwei Gleichstrommotoren gleichzeitig unabhängig voneinander steuern, die Motoren A und B genannt werden. Der L298N-Treiber hat 13 Pins:
Die gemeinsamen Pins für beide Motoren:
- VCC-Pin: versorgt den Motor mit Strom. Es kann zwischen 5 und 35 V liegen.
- GND-Pin: ist ein gemeinsamer Masseanschluss und muss mit GND (0 V) verbunden werden.
- 5V-Pin: versorgt das L298N-Modul mit Strom. Er kann vom Arduino mit 5V versorgt werden.
Motor A-Pins (Kanal A):
- Die ENA-Pins dienen der Steuerung der Geschwindigkeit von Motor A. Entfernt man den Jumper und verbindet diesen Pin mit dem PWM-Eingang, lässt sich die Geschwindigkeit von Motor A steuern.
- IN1- und IN2-Pins dienen zur Steuerung der Drehrichtung von Motor A. Wenn einer von ihnen HIGH ist und der andere LOW, dreht sich Motor A. Wenn beide Eingänge entweder HIGH oder LOW sind, stoppt Motor A.
- OUT1- und OUT2-Pins sind mit Motor A verbunden.
Motor-B-Anschlüsse (Kanal B):
- ENB-Pins: werden verwendet, um die Geschwindigkeit von Motor B zu steuern. Durch Entfernen des Jumpers und das Anschließen dieses Pins an den PWM-Eingang lässt sich die Geschwindigkeit von Motor B steuern.
- IN3- und IN4-Pins: werden verwendet, um die Drehrichtung von Motor B zu steuern. Wenn einer von ihnen hoch ist und der andere niedrig, dreht sich Motor B. Sind beide Eingänge entweder hoch oder niedrig, stoppt Motor B.
- OUT3- und OUT4-Pins: sind mit Motor B verbunden.
Wie oben beschrieben, hat der L298N-Treiber zwei Versorgungsspannungen:
- Für den Gleichstrommotor (VCC- und GND-Pins): von 5 bis 35 V.
- Für den internen Betrieb des L298N-Moduls (5V- und GND-Pins): von 5 bis 7 V.
Der L298N-Treiber verfügt außerdem über drei Jumper-Steckbrücken für fortgeschrittene Anwendungen oder andere Zwecke. Aus Gründen der Einfachheit entfernen Sie bitte alle Jumper vom L298N-Treiber.
Wir können zwei Gleichstrommotoren unabhängig voneinander gleichzeitig steuern, indem wir einen Arduino und einen L298N-Treiber verwenden. Um jeden Motor zu steuern, benötigen wir nur drei Pins vom Arduino.
※ Notiz:
Der Rest dieses Tutorials steuert einen Gleichstrommotor über Kanal A. Die Steuerung des anderen Gleichstrommotors ist ähnlich.
So steuern Sie die Drehzahl eines Gleichstrommotors über den L298N-Treiber
Es ist einfach, die Geschwindigkeit des Gleichstrommotors zu steuern, indem man ein PWM-Signal an den ENA-Pin des L298N erzeugt. Wir können dies tun, indem:
- Verbinde einen Arduino-Pin mit dem ENA des L298N
- Erzeuge ein PWM-Signal am ENA-Pin, indem du die Funktion analogWrite() verwendest. Der L298N-Treiber verstärkt das PWM-Signal auf den Gleichstrommotor
Die Geschwindigkeit liegt zwischen 0 und 255. Wenn die Geschwindigkeit 0 ist, stoppt der Motor. Wenn die Geschwindigkeit 255 ist, dreht sich der Motor mit Höchstgeschwindigkeit.
Wie man die Richtung eines Gleichstrommotors über den L298N-Treiber steuert
Die Drehrichtung des Motors lässt sich steuern, indem man an die Pins IN1 und IN2 HIGH bzw. LOW anlegt. Die folgende Tabelle veranschaulicht, 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 |
- Motor A dreht sich im Uhrzeigersinn
- Motor A dreht sich gegen den Uhrzeigersinn.
※ Notiz:
Die Drehrichtung dreht sich um, wenn OUT1- und OUT2-Pin zwei Pins des Gleichstrommotors auf umgekehrte Weise verbinden. Falls dies der Fall ist, muss man lediglich zwischen OUT1- und OUT2-Pin wechseln oder das Steuersignal an IN1- und IN2-Pin im Code ändern.
So stoppen Sie das Drehen eines Gleichstrommotors
Es gibt zwei Möglichkeiten, einen Gleichstrommotor zu stoppen.
- Stellt die Geschwindigkeit auf 0 ein.
- Steuert die Pins IN1 und IN2 auf denselben Wert (niedrig oder hoch)
- Oder
Wie man einen Gleichstrommotor mit dem L298N-Treiber steuert.
Verdrahtungsdiagramm
Bevor Sie es verdrahten, entfernen Sie bitte alle drei Jumper auf dem L298N-Modul.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino-Code
Der unten stehende Code führt Folgendes aus:
- Gleichstrommotor beschleunigen
- Richtung ändern
- Gleichstrommotor verlangsamen
- Motor stoppen
Schnelle Schritte
- Entfernen Sie alle drei Jumper am L298N-Modul.
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
- Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino hochzuladen.
- Sie sehen:
- Der DC-Motor wird beschleunigt und dreht sich dann eine Sekunde lang mit Höchstgeschwindigkeit.
- Die Drehrichtung des DC-Motors ändert sich.
- Der DC-Motor dreht sich eine Sekunde lang mit Höchstgeschwindigkeit in der Gegenrichtung.
- Der DC-Motor wird abgebremst.
- Der DC-Motor bleibt eine Sekunde stehen.
- Der obige Prozess wird wiederholt.
※ Notiz:
In diesem Tutorial lernen wir, wie man die Drehzahl des Gleichstrommotors kontrolliert, die relativ zur maximalen Drehzahl liegt. Um die absolute Drehzahl (Umdrehungen pro Sekunde) zu steuern, benötigen wir einen PID-Regler und einen Encoder. Die Steuerung der absoluten Drehzahl des Gleichstrommotors wird in einem anderen Tutorial behandelt.
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.