ESP8266 - Gleichstrommotor

Dieses Tutorial erklärt Ihnen, wie Sie den ESP8266 verwenden, um einen Gleichstrommotor zu steuern. Im Detail werden wir lernen:

Erforderliche Hardware

1×ESP8266 NodeMCU
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×(Optional) 12V DC Motor
1×5V Netzteil für 5V DC-Motor
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

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

DC-Motor-Pinbelegung

Ein Gleichstrommotor hat zwei Kabel, das positive Kabel ist üblicherweise rot und das negative Kabel schwarz.

Gleichstrommotor-Pinbelegung

Wie es funktioniert

Beim Kauf eines Gleichstrommotors ist es wichtig, die Betriebsspannung zu bestimmen, bei der er betrieben wird. Zum Beispiel betrachten wir einen 12-V-Gleichstrommotor.

Wenn Sie den 12-V-Gleichstrommotor mit einer 12-V-Stromquelle betreiben:

  • Verbinden Sie 12 V und GND mit dem positiven Draht bzw. dem negativen Draht: Der Gleichstrommotor dreht sich mit maximaler Geschwindigkeit im Uhrzeigersinn.
  • Verbinden Sie 12 V und GND mit dem negativen Draht bzw. dem positiven Draht: Der Gleichstrommotor dreht sich mit maximaler Geschwindigkeit gegen den Uhrzeigersinn.

Wie bereits erwähnt, ändert sich die Drehrichtung, indem man den Pol zwischen zwei Drähten des Gleichstrommotors vertauscht. Dies ist eine Methode, die verwendet wird, um die Drehrichtung des Gleichstrommotors zu steuern, nicht manuell, sondern durch Programmierung.

Wenn die dem Gleichstrommotor zugeführte Spannung unter 12 V liegt, dreht sich der Motor zwar, aber nicht mit Höchstgeschwindigkeit. Dies bedeutet, dass wir durch Anpassen der Spannung der Stromversorgung die Geschwindigkeit des Gleichstrommotors verändern können. Dennoch wird dieser Ansatz aufgrund der Komplexität der Steuerung der Versorgungsspannung nicht üblicherweise verwendet. Daher wird die Spannung der Stromversorgung konstant gehalten und die Geschwindigkeit des Gleichstrommotors durch ein PWM-Signal geregelt. Je größer das Tastverhältnis des PWM-Signals, desto schneller dreht sich der Gleichstrommotor.

Wie man einen Gleichstrommotor steuert

So steuern Sie einen DC-Motor mit dem ESP8266

Die Steuerung eines Gleichstrommotors umfasst zwei Komponenten: Drehzahl und Drehrichtung. Der ESP8266 kann ein PWM-Signal erzeugen, hat jedoch eine geringe Spannung und Stromstärke, weshalb er nicht zur Steuerung des Gleichstrommotors verwendet werden kann. Um die Lücke zwischen dem ESP8266 und dem Gleichstrommotor zu überbrücken, wird ein Hardware-Treiber benötigt. Dieser Treiber übernimmt zwei Aufgaben:

  • Verstärkung des PWM-Signals vom ESP8266 hinsichtlich Strom und Spannung zur Geschwindigkeitsregelung
  • Empfang des Steuersignals vom ESP8266, um die Polarität der Stromversorgung für die Richtungssteuerung umzuschalten
ESP8266 NodeMCU-Steuerung eines Gleichstrommotors

※ Notiz:

  • Dieses Tutorial kann für jeden Gleichstrommotor verwendet werden. Ein 12-V-Gleichstrommotor ist nur ein Beispiel.
  • Wenn Sie einen 5-V-Gleichstrommotor steuern, auch wenn der ESP8266-Pin 5 V ausgibt (dies entspricht der gleichen Spannung wie der Gleichstrommotor), benötigen Sie dennoch einen Treiber zwischen dem ESP8266 und dem Gleichstrommotor, da der ESP8266-Pin nicht genügend Strom für den Gleichstrommotor liefert.

Es gibt zahlreiche Arten von Chips, und Module wie L293D und 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. Dieses Tutorial zeigt Ihnen, wie Sie ihn verwenden, um einen Gleichstrommotor zu steuern.

L298N Treiber-Pinbelegung

L298N Treiber-Pinbelegung

Der L298N-Treiber ist in der Lage, zwei Gleichstrommotoren unabhängig voneinander und gleichzeitig zu steuern, die als Motor A und Motor B bezeichnet werden. Dieser Treiber verfügt insgesamt über 13 Pins.

Die gemeinsamen Pins beider Motoren:

  • VCC-Pin: Dieser Pin versorgt den Motor mit Strom, mit einer Spannung von 5 bis 35 V.
  • GND-Pin: Dies ist ein gemeinsamer Masse-Pin, der mit 0 V (GND) verbunden werden muss.
  • 5V-Pin: Dieser Pin versorgt das L298N-Modul mit Strom und kann vom ESP8266 mit 5 V versorgt werden.

Motor A-Pins (Kanal A):

  • ENA-Anschlüsse: Diese Anschlüsse können verwendet werden, um die Geschwindigkeit von Motor A zu steuern. Durch das Entfernen des Jumpers und das Anschließen an einen PWM-Eingang kann die Geschwindigkeit von Motor A angepasst werden.
  • IN1- und IN2-Pins: Diese Pins dienen dazu, die Drehrichtung von Motor A zu steuern. Wenn einer dieser Pins auf HIGH gesetzt wird und der andere auf LOW, dreht sich Motor A. Sind beide Pins entweder HIGH oder LOW, bewegt sich Motor A nicht.
  • OUT1- und OUT2-Pins: Diese Pins sind mit Motor A verbunden.

Motor-B-Pins (Kanal B):

  • Diese Pins dienen dazu, Motor B mit Strom zu versorgen.
  • ENB-Pins: Dieser Pin kann an einen PWM-Eingang angeschlossen werden, um die Geschwindigkeit von Motor B zu steuern. Das Entfernen des Jumpers ermöglicht dies.
  • IN3- und IN4-Pins: Diese Pins dienen der Bestimmung der Drehrichtung von Motor B. Wenn einer von ihnen HIGH ist und der andere LOW, dreht sich Motor B. Sind beide Eingänge HIGH oder LOW, stoppt Motor B.
  • OUT3- und OUT4-Pins: Diese Pins sind mit Motor B verbunden und versorgen ihn mit Strom.

Der L298N-Treiber hat zwei Eingangsspannungen:

  • Eine für den DC-Motor, mit einem Spannungsbereich von 5 bis 35 V, angeschlossen an die VCC- und GND-Pins.
  • Eine für den internen Betrieb des L298N-Moduls, mit einem Spannungsbereich von 5 bis 7 V, angeschlossen an die 5V- und GND-Pins.

Entfernen Sie alle Jumper vom L298N-Treiber, um es zu vereinfachen. Dies ist notwendig, da die Jumper für fortgeschrittene Anwendungen oder andere Zwecke verwendet werden.

Wir können zwei Gleichstrommotoren unabhängig voneinander gleichzeitig steuern, indem wir einen ESP8266 und einen L298N-Treiber verwenden. Um jeden Motor zu steuern, benötigen wir lediglich drei Pins des ESP8266.

※ Notiz:

Der verbleibende Teil dieses Tutorials wird sich darauf konzentrieren, einen Gleichstrommotor über Kanal A zu steuern. Ähnliche Schritte können unternommen werden, um den anderen Gleichstrommotor zu steuern.

Wie man die Geschwindigkeit eines Gleichstrommotors über den L298N-Treiber steuert

Es ist einfach, die Drehzahl eines Gleichstrommotors zu regeln, indem man ein PWM-Signal an den ENA-Pin des L298N anlegt. Dies lässt sich erreichen durch:

  • Einen ESP8266-Pin an den ENA-Pin des L298N anschließen
  • Ein PWM-Signal an den ENA-Pin erzeugen, indem die Funktion analogWrite() verwendet wird. Der L298N-Treiber verstärkt das PWM-Signal zum Gleichstrommotor.
analogWrite(ENA_PIN, speed); // speed ist ein Wert von 0 bis 255

Die Geschwindigkeit kann von 0 bis 255 reichen. Wenn die Geschwindigkeit 0 beträgt, kommt der Motor zum Stillstand. Bei einer Geschwindigkeit von 255 dreht sich der Motor mit maximaler Geschwindigkeit.

Wie man die Drehrichtung eines Gleichstrommotors über den L298N-Treiber steuert

Die Drehrichtung eines Motors kann durch das Anlegen eines logischen HIGH- bzw. LOW-Signals an die Pins IN1 und IN2 eingestellt werden. Die untenstehende Tabelle zeigt, 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

Entsprechend:

  • ESP8266-Code zum Drehen im Uhrzeigersinn.
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • ESP8266-Code zum Drehen gegen den Uhrzeigersinn.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ Notiz:

Die Drehrichtung des Gleichstrommotors kann umgekehrt werden, indem die OUT1- und OUT2-Pins in entgegengesetzter Weise verbunden werden.

Wie man einen Gleichstrommotor zum Stillstand bringt

Es gibt zwei Methoden, einen Gleichstrommotor zu stoppen:

  • Reduzieren Sie die Geschwindigkeit auf Null.
analogWrite(ENA_PIN, 0);
  • Setzt beide 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.

Verdrahtungsdiagramm

Es ist wichtig, alle drei Jumper vom L298N-Modul zu entfernen, bevor die Kabel angeschlossen werden.

ESP8266 NodeMCU DC-Motor L298N Treiber Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266-Code

Der folgende Code tut Folgendes:

  • Erhöht die Geschwindigkeit eines Gleichstrommotors
  • Verändert die Richtung
  • Verringert die Geschwindigkeit eines Gleichstrommotors
  • Hält den Motor an
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-dc-motor */ #define PIN_ENA D5 // The ESP8266 pin connected to the EN1 pin L298N #define PIN_IN1 D6 // The ESP8266 pin connected to the IN1 pin L298N #define PIN_IN2 D7 // The ESP8266 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

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, folgen Sie diesen Schritten:

  • Schau dir das Tutorial Wie man die ESP8266-Umgebung in der Arduino IDE einrichtet an, falls dies dein erster Umgang mit ESP8266 ist.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Verbinde das ESP8266-Board mit deinem Computer über ein USB-Kabel.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, zum Beispiel NodeMCU 1.0 (ESP-12E-Modul), und seinen jeweiligen COM-Port.
  • Entferne alle drei Jumper vom L298N-Modul.
  • Kopiere den Code und öffne ihn in der Arduino IDE.
  • Klicke im Arduino IDE auf die Schaltfläche Upload, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
  • Du solltest Folgendes beobachten:
    • Der Gleichstrommotor wird sich beschleunigen und dann eine Sekunde lang mit seiner Höchstgeschwindigkeit drehen.
    • Die Drehrichtung des Gleichstrommotors wird sich ändern.
    • Der Gleichstrommotor wird eine Sekunde lang mit maximaler Geschwindigkeit in die entgegengesetzte Richtung drehen.
    • Der Gleichstrommotor wird langsamer.
    • Der Gleichstrommotor wird eine Sekunde lang anhalten.
    • Dieser Ablauf wiederholt sich.

    ※ Notiz:

    Dieses Tutorial zeigt dir, wie du die Geschwindigkeit eines Gleichstrommotors im Verhältnis zu seiner maximalen Geschwindigkeit steuerst. Um die absolute Geschwindigkeit (in Umdrehungen pro Sekunde) zu steuern, benötigen wir einen PID-Regler und einen Encoder. Die Steuerung der absoluten Geschwindigkeit des Gleichstrommotors wird in einem separaten Tutorial behandelt.

Wie man zwei DC-Motoren mit dem L298N-Treiber steuert

Demnächst verfügbar!

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!