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

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×L298N Motortreiber-Modul
1×5V DC-Motor
1×5V Netzteil für 5V DC-Motor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

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 Gleichstrommotor

Pinbelegung des Gleichstrommotors

Ein Gleichstrommotor hat zwei Drähte: Negativ(schwarz), und Positiv(rot)

Pinbelegung des Gleichstrommotors

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.

Wie man einen Gleichstrommotor steuert.

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.
Arduino Nano ESP32 Steuerung eines Gleichstrommotors

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.

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
analogWrite(PIN_ENA, speed); // Motor A steuern analogWrite(PIN_ENB, speed); // Motor B steuern

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.
digitalWrite(PIN_IN1, HIGH); digitalWrite(PIN_IN2, LOW);
  • Steuerung des Motors A in Richtung gegen den Uhrzeigersinn.
digitalWrite(PIN_IN1, LOW); digitalWrite(PIN_IN2, HIGH);

※ 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
analogWrite(PIN_ENA, 0);
  • Steuern der Pins IN1 und IN2 auf denselben LOW- oder HIGH-Pegel
digitalWrite(PIN_IN1, HIGH); digitalWrite(PIN_IN2, HIGH);
  • oder
digitalWrite(PIN_IN1, LOW); digitalWrite(PIN_IN2, LOW);

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.

Arduino Nano ESP32 Gleichstrommotor L298N Treiber Verdrahtungsdiagramm

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.
/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-esp32/arduino-nano-esp32-dc-motor */ #define PIN_ENA D5 // The Arduino Nano ESP32 pin connected to the EN1 pin L298N #define PIN_IN1 D4 // The Arduino Nano ESP32 pin connected to the IN1 pin L298N #define PIN_IN2 D3 // The Arduino Nano ESP32 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(PIN_IN1, OUTPUT); pinMode(PIN_IN2, OUTPUT); pinMode(PIN_ENA, OUTPUT); } // The loop function repeats indefinitely void loop() { digitalWrite(PIN_IN1, HIGH); // control the motor's direction in clockwise digitalWrite(PIN_IN2, LOW); // control the motor's direction in clockwise for (int speed = 0; speed <= 255; speed++) { analogWrite(PIN_ENA, speed); // speed up delay(10); } delay(2000); // rotate at maximum speed 2 seconds in clockwise direction // change direction digitalWrite(PIN_IN1, LOW); // control the motor's direction in anti-clockwise digitalWrite(PIN_IN2, HIGH); // control the motor's direction in anti-clockwise delay(2000); // rotate at maximum speed for 2 seconds in anti-clockwise direction for (int speed = 255; speed >= 0; speed--) { analogWrite(PIN_ENA, speed); // speed down delay(10); } delay(2000); // stop motor 2 second }

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.

※ 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!