Arduino Nano – Gleichstrommotor
Dieses Tutorial zeigt Ihnen, wie Sie den Arduino Nano verwenden, um einen Gleichstrommotor zu steuern. Im Detail werden wir lernen:
- Wie ein DC-Motor funktioniert
- Wie man Arduino Nano und den L298N-Treiber verwendet, um einen Gleichstrommotor zu steuern
- Wie man den Arduino Nano programmiert, um die Geschwindigkeit und die Richtung eines Gleichstrommotors zu steuern
- Wie man den Arduino Nano 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 den Gleichstrommotor
Gleichstrommotor Pinbelegung
Der Gleichstrommotor hat zwei Drähte; der positive Draht ist gewöhnlich rot und der negative Draht ist gewöhnlich schwarz.

Wie es funktioniert
Beim Kauf eines Gleichstrommotors ist es wichtig, die Betriebsspannung zu beachten, bei der er arbeitet. Nehmen wir zum Beispiel einen 12-V-Gleichstrommotor.
Wenn Sie den 12-V-Gleichstrommotor mit einer 12-V-Stromquelle betreiben:
- Wenn 12 V und Masse an den positiven Draht bzw. den negativen Draht angeschlossen werden: Der DC-Motor dreht sich mit maximaler Geschwindigkeit im Uhrzeigersinn.
- Wenn 12 V und Masse an den negativen Draht bzw. den positiven Draht angeschlossen werden: Der DC-Motor dreht sich mit maximaler Geschwindigkeit gegen den Uhrzeigersinn.
Durch das Vertauschen des Plus- und Minuspols der Stromversorgung zwischen zwei Leitungen des Gleichstrommotors wird dessen Drehrichtung umgekehrt. Diese Technik wird verwendet, um die Drehrichtung des Gleichstrommotors zu steuern, nicht manuell, sondern durch Programmierung.
Wenn die Spannung der Stromversorgung für einen Gleichstrommotor niedriger als 12 V ist, wird der Motor zwar noch rotieren, aber nicht mit seiner Höchstgeschwindigkeit. Daher können wir durch die Einstellung der Spannung der Stromversorgung die Geschwindigkeit des Gleichstrommotors steuern. Dennoch wird dieser Ansatz aufgrund der Schwierigkeit, die Spannung der Stromversorgung zu regeln, typischerweise nicht verwendet. Als Alternative halten wir die Spannung der Stromversorgung konstant und steuern die Drehzahl des Gleichstrommotors über ein PWM-Signal. Je größer das Taktverhältnis des PWM-Signals, desto schneller dreht sich der Gleichstrommotor.

So steuern Sie einen Gleichstrommotor mit dem Arduino Nano
Die Steuerung eines Gleichstrommotors umfasst zwei Elemente: Drehzahl und Richtung. Der Arduino Nano kann ein PWM-Signal erzeugen, aber dieses Signal hat eine geringe Spannung und einen geringen Strom, sodass es nicht direkt verwendet werden kann, um den Motor zu steuern. Wir müssen einen Hardware-Treiber zwischen dem Arduino Nano und dem Motor verwenden. Der Treiber übernimmt zwei Aufgaben:
- Verstärkung des PWM-Signals vom Arduino Nano (in Bezug auf Strom und/oder Spannung) zur Geschwindigkeitsregelung
- Empfang des Steuersignals vom Arduino Nano zum Umschalten der Polarität der Spannungsversorgung für die Richtungssteuerung

※ Notiz:
- Dieses Tutorial kann für alle Gleichstrommotoren verwendet werden. Wir nehmen als Beispiel einen 12-V-Gleichstrommotor.
- Wenn Sie einen 5-V-Gleichstrommotor steuern, liefert der Pin des Arduino Nano zwar 5 V (was dieselbe Spannung wie der Gleichstrommotor ist), ein Treiber wird jedoch weiterhin zwischen dem Arduino Nano und dem Gleichstrommotor benötigt, da der Pin des Arduino Nano nicht genügend Strom für den Gleichstrommotor liefert.
- Wenn Sie einen 5-V-Gleichstrommotor verwenden, benötigen Sie ein 5-V-Netzteil für den Motor. Wenn Sie einen 12-V-Gleichstrommotor verwenden, benötigen Sie ein 12-V-Netzteil für den Motor.
Es gibt viele Chips und Module, die als Treiber für Gleichstrommotoren dienen können, wie zum Beispiel der L293D und der L298N. In diesem Leitfaden verwenden wir den L298N-Treiber.
Über L298N-Treiber
Der L298N-Treiber kann verwendet werden, um Gleichstrommotoren und Schrittmotoren zu steuern. Dieses Tutorial erklärt dir, wie du ihn verwenden kannst, um einen Gleichstrommotor zu steuern.
L298N Treiber-Pinbelegung

Der L298N-Treiber kann zwei Gleichstrommotoren gleichzeitig unabhängig voneinander steuern, die als Motor A und Motor B bezeichnet werden. Dieser Treiber verfügt über dreizehn Pins.
Die gemeinsamen Anschlüsse beider Motoren:
- VCC-Pin: Dieser Pin versorgt den Motor mit Strom, mit einem Spannungsbereich von 5 bis 35 V.
- GND-Pin: Dieser Pin ist eine gemeinsame Masseverbindung, die mit 0 V (GND) verbunden werden muss.
- 5V-Pin: Dieser Pin versorgt das L298N-Modul mit Strom und kann von einer 5-V-Quelle eines Arduino Nano gespeist werden.
Motor A-Pins (Kanal A):
- ENA-Pins: Diese Pins dienen der Geschwindigkeitsregelung von Motor A. Indem man den Jumper entfernt und diesen Pin an einen PWM-Eingang anschließt, kann die Geschwindigkeit von Motor A gesteuert werden.
- IN1 & IN2-Pins: Diese Pins werden verwendet, um die Drehrichtung von Motor A zu steuern. 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 & OUT2-Pins: Diese Pins sind mit Motor A verbunden.
Motor-B-Pins (Kanal B):
- ENB-Anschluss: Dieser Anschluss kann verwendet werden, um die Geschwindigkeit von Motor B zu steuern. Durch das Entfernen des Jumpers und das Anschließen an den PWM-Eingang können wir die Geschwindigkeit von Motor B einstellen.
- IN3- & IN4-Anschlüsse: Diese Anschlüsse dienen dazu, die Drehrichtung von Motor B zu steuern. Wenn einer von ihnen HIGH ist, während der andere LOW ist, dreht sich Motor B. Sind beide Eingänge entweder HIGH oder LOW, hört Motor B auf, sich zu drehen.
- OUT3- & OUT4-Anschlüsse: Diese Anschlüsse sind mit Motor B verbunden.
Der L298N-Treiber hat zwei Eingangsspannungen:
- Eine für den Gleichstrommotor, mit einem Spannungsbereich von 5 bis 35 V (VCC- und GND-Pins).
- Eine für den internen Betrieb des L298N-Moduls, mit einem Spannungsbereich von 5 bis 7 V (5 V und GND-Pins).
Entfernen Sie alle Jumper vom L298N-Treiber, um es zu vereinfachen.
Wir können auch zwei Gleichstrommotoren gleichzeitig und unabhängig voneinander steuern, indem wir einen Arduino Nano und einen L298N-Treiber verwenden. Um jeden Motor zu steuern, benötigen wir nur drei Pins des Arduino Nano.
※ Notiz:
Der Rest dieses Tutorials wird sich darauf konzentrieren, einen Gleichstrommotor mit Kanal A zu steuern. Für den anderen Gleichstrommotor sollten ähnliche Schritte befolgt werden.
So steuern Sie die Geschwindigkeit eines DC-Motors über den L298N-Treiber
Es ist einfach, die Drehzahl eines Gleichstrommotors zu steuern, indem man ein PWM-Signal an den ENA-Pin des L298N erzeugt. Dazu:
- Verbinde einen Pin des Arduino Nano mit dem ENA des L298N
- Generiere ein PWM-Signal am ENA-Pin über die Funktion analogWrite(). Der L298N-Treiber verstärkt das PWM-Signal auf den Gleichstrommotor.
Die Geschwindigkeit ist eine Zahl, die von 0 bis 255 reicht. Wenn die Geschwindigkeit 0 ist, hört der Motor auf zu bewegen. Wenn die Geschwindigkeit 255 erreicht, dreht sich der Motor mit der höchsten Drehzahl.
Wie man die Drehrichtung eines Gleichstrommotors über den L298N-Treiber steuert
Die Drehung eines Motors kann gesteuert werden, indem man den Pins IN1 und IN2 ein logisches HIGH- oder LOW-Signal zuweist. Die folgende Tabelle zeigt, wie man die Richtung 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 |
Dementsprechend:
- Arduino-Code, der Motor A im Uhrzeigersinn drehen lässt.
- Arduino-Code, um Motor A gegen den Uhrzeigersinn drehen zu lassen.
※ Notiz:
Die Vorwärts-/Rückwärtsrichtung des Gleichstrommotors kann umgekehrt werden, indem die Pins OUT1 und OUT2 mit zwei Pins des Motors in entgegengesetzter Weise verbunden werden.
Wie man einen Gleichstrommotor zum Stillstand bringt
Zwei Methoden zum Stoppen eines Gleichstrommotors:
- Die Geschwindigkeit auf Null reduzieren
- Setzt die Pins IN1 und IN2 auf denselben Wert, entweder LOW oder HIGH.
- Oder
Wie man einen Gleichstrommotor mit dem L298N-Treiber steuert.
Schaltplan
Nehmen Sie alle drei Jumper vom L298N-Modul heraus, bevor Sie die Kabel anschließen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.
Arduino Nano-Quellcode
Der folgende Code führt Folgendes nacheinander aus.
- Steigert die Drehzahl eines Gleichstrommotors
- Wechselt die Richtung
- Reduziert die Drehzahl eines Gleichstrommotors
- Stoppt den Gleichstrommotor
Schnelle Schritte
- Nehmen Sie alle drei Jumper vom L298N-Modul heraus.
- Kopieren Sie den Code und öffnen Sie ihn in der Arduino-IDE.
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino-IDE, um den Code auf den Arduino Nano hochzuladen.
- Folgendes sollten Sie beobachten:
- Der Gleichstrommotor wird beschleunigen und sich dann eine Sekunde lang mit maximaler Geschwindigkeit drehen.
- Die Drehrichtung des Gleichstrommotors wird sich ändern.
- Der Gleichstrommotor wird sich eine Sekunde lang mit maximaler Geschwindigkeit in die entgegengesetzte Richtung drehen.
- Der Gleichstrommotor wird langsamer.
- Der Gleichstrommotor wird eine Sekunde lang stoppen.
- Dieser Prozess wird kontinuierlich wiederholt.
※ Notiz:
Dieses Tutorial zeigt Ihnen, wie Sie die Geschwindigkeit eines Gleichstrommotors relativ zu seiner Höchstgeschwindigkeit einstellen. Um die absolute Geschwindigkeit zu steuern (in Umdrehungen pro Sekunde), benötigen wir einen PID-Controller und einen Encoder. Ein separates Tutorial behandelt die Steuerung der absoluten Geschwindigkeit des Gleichstrommotors.
Wie man zwei Gleichstrommotoren mit dem L298N-Treiber steuert
Bald erhältlich!
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.