Arduino Nano – Gleichstrommotor

Dieses Tutorial zeigt Ihnen, wie Sie den Arduino Nano verwenden, um einen Gleichstrommotor zu steuern. Im Detail werden wir lernen:

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×L298N Motortreiber-Modul
1×5V DC-Motor
1×(Optional) 12V DC Motor
1×5V Netzteil für 5V DC-Motor
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Ü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.

Gleichstrommotor-Pinbelegung

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.

Wie man einen Gleichstrommotor steuert

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
Arduino Nano steuert Gleichstrommotor

※ 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

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.
analogWrite(ENA_PIN, speed); // Geschwindigkeit ist ein Wert von 0 bis 255

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.
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Arduino-Code, um Motor A gegen den Uhrzeigersinn drehen zu lassen.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ 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
analogWrite(ENA_PIN, 0);
  • Setzt die Pins IN1 und IN2 auf denselben Wert, entweder LOW oder HIGH.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • Oder
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

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.

Arduino Nano DC-Motor L298N Treiber Verdrahtungsdiagramm

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
/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-dc-motor */ const int ENA_PIN = 6; // The Arduino Nano pin connected to the EN1 pin L298N const int IN1_PIN = 5; // The Arduino Nano pin connected to the IN1 pin L298N const int IN2_PIN = 4; // The Arduino Nano pin connected to the IN2 pin L298N // The setup function runs once on reset or power-up void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); } // The loop function repeats indefinitely void loop() { digitalWrite(IN1_PIN, HIGH); // control motor A spins clockwise digitalWrite(IN2_PIN, LOW); // control motor A spins clockwise for (int speed = 0; speed <= 255; speed++) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // rotate at maximum speed 1 seconds in in clockwise direction // change direction digitalWrite(IN1_PIN, LOW); // control motor A spins anti-clockwise digitalWrite(IN2_PIN, HIGH); // control motor A spins anti-clockwise delay(1000); // rotate at maximum speed 1 seconds in in anti-clockwise direction for (int speed = 255; speed >= 0; speed--) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // stop motor 1 second }

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.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!