ESP32 - Aktuator

Dieses Tutorial erklärt dir, wie du den ESP32 zur Steuerung eines linearen Aktuators verwendest. Im Detail werden wir lernen:

Dieses Tutorial richtet sich an einen Linearantrieb ohne Rückmeldung. Wenn Sie mehr über einen Linearantrieb mit Rückmeldung erfahren möchten, sehen Sie sich dieses ESP32 - Actuator with Feedback Tutorial an.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×Linearaktor
1×L298N Motortreiber-Modul
1×12V Netzteil
1×(Optional) DC-Stromanschluss
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
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 Linearantrieb

Linearantrieb Ausfahren Einfahren

Linearantrieb Pinbelegung

Der Linearantrieb hat zwei Drähte:

  • Positiver Draht: normalerweise rot
  • Negativer Draht: normalerweise schwarz
Linearantrieb Pinbelegung

Wie es funktioniert

Wenn Sie einen Linearantrieb kaufen, müssen Sie wissen, mit welcher Spannung der Linearantrieb arbeitet. Nehmen wir als Beispiel einen 12-Volt-Linearantrieb.

Wenn Sie den 12-V-Linearantrieb mit einer 12-V-Stromquelle versorgen:

  • 12V und GND an das positive Kabel bzw. das negative Kabel anschließen: Der Linearantrieb fährt mit voller Geschwindigkeit aus, bis er den Endanschlag erreicht.
  • 12V und GND an das negative Kabel bzw. das positive Kabel anschließen: Der Linearantrieb fährt mit voller Geschwindigkeit ein, bis er den Endanschlag erreicht.

Beim Ausfahren oder Einfahren, wenn wir dem Aktuator die Stromversorgung entziehen (GND an beide Leitungen, sowohl an den positiven als auch an den negativen), hört der Aktuator auf, auszufahren bzw. einzufahren.

※ Notiz:

Für Gleichstrommotoren, Servomotoren und Schrittmotoren ohne Getriebe gilt: Unter Last können sie die Position nicht halten, wenn die Stromzufuhr abgeschaltet wird. Anders als diese Motoren kann der Stellantrieb die Position auch dann halten, wenn die Stromzufuhr abgeschaltet wird, während er eine Last trägt.

Wenn wir Linearantriebe mit einer Spannung unter 12 V versorgen, fahren sie dennoch aus oder ein, aber nicht mit maximaler Geschwindigkeit. Das bedeutet, dass wir die Spannung der Stromversorgung ändern können und dadurch die Geschwindigkeit des Linearantriebs verändern. Dieser Ansatz wird in der Praxis jedoch nicht verwendet, da es schwierig ist, die Spannung der Stromversorgung zu regeln. Stattdessen fixieren wir die Spannung der Stromversorgung und steuern die Geschwindigkeit des Linearantriebs über ein PWM-Signal. Je größer das Tastverhältnis des PWM-Signals ist, desto schneller fährt der Linearantrieb aus bzw. ein.

Wie man einen Linearantrieb steuert

Wie man einen Linearantrieb mit ESP32 steuert

Die Steuerung eines Linearantriebs umfasst:

  • Fährt den Linearantrieb mit maximaler Geschwindigkeit aus.
  • Fährt den Linearantrieb mit maximaler Geschwindigkeit ein.
  • (optional) steuert die Aus- und Einfahrgeschwindigkeit.

Der ESP32 kann das Signal zur Steuerung des linearen Aktuators erzeugen. Allerdings besitzt dieses Signal eine geringe Spannung und einen geringen Strom, weshalb wir es nicht verwenden können, um den linearen Aktuator zu steuern. Wir müssen einen Hardwaretreiber zwischen dem ESP32 und dem linearen Aktuator verwenden. Der Treiber übernimmt zwei Aufgaben:

  • Das Steuersignal vom ESP32 verstärken (Strom und Spannung)
  • Ein weiteres Steuersignal vom ESP32 empfangen, um den Pol der Stromversorgung umzuschalten → Zur Richtungssteuerung

※ Notiz:

  • Dieses Tutorial kann auf alle Linearantriebe angewendet werden. Ein 12-V-Linearantrieb ist nur ein Beispiel.
  • Wenn Sie einen 5-V-Linearantrieb steuern, obwohl der ESP32-Pin 5 V ausgibt (das Gleiche wie die Versorgungsspannung des Linearantriebs), benötigen Sie dennoch einen Treiber zwischen dem ESP32 und dem Linearantrieb, da der ESP32-Pin nicht genügend Strom für den Linearantrieb liefert.

Es gibt viele Arten von Chips; Module (z. B. L293D, L298N) können als Treiber für lineare Aktuatoren verwendet werden. In diesem Tutorial verwenden wir den L298N-Treiber.

※ Notiz:

Sie können Relais auch als Treiber verwenden. Allerdings sind 4 Relais erforderlich, um einen einzelnen Linearantrieb zu steuern (sowohl Ausfahren als auch Einfahren).

Über den L298N-Treiber

Der L298N-Treiber kann verwendet werden, um einen Linearantrieb, einen Gleichstrommotor und einen Schrittmotor zu steuern. In diesem Tutorial lernen wir, wie man ihn verwendet, um den Linearantrieb zu steuern.

L298N Treiber-Pinbelegung

L298N Treiber-Pinbelegung

Der L298N-Treiber hat zwei Kanäle, die Kanal A und Kanal B genannt werden. Daher kann der L298N-Treiber zwei Linearantriebe gleichzeitig unabhängig voneinander steuern. Nehmen wir an, dass der Linearantrieb A an Kanal A angeschlossen ist, der Linearantrieb B an Kanal B angeschlossen ist. Der L298N-Treiber hat 13 Pins:

Die gemeinsamen Pins für beide Kanäle:

  • VCC-Pin: versorgt den Linearantrieb mit Strom. Es kann zwischen 5 und 35 V liegen.
  • GND-Pin: ist ein gemeinsamer Massepin; muss mit GND (0 V) verbunden werden.
  • 5V-Pin: versorgt das L298N-Modul mit Spannung. Es kann durch 5 V vom ESP32 gespeist werden.

Kanal A-Pins:

  • ENA-Pins: werden verwendet, um die Geschwindigkeit des linearen Aktuators A zu steuern. Das Entfernen des Jumpers und das Anschließen dieses Pins an den PWM-Eingang ermöglichen es uns, die Ausfahr- bzw. Einfahrgeschwindigkeit des linearen Aktuators A zu steuern.
  • IN1 & IN2-Pins: werden verwendet, um die Bewegungsrichtung eines linearen Aktuators zu steuern. Wenn einer von ihnen HIGH ist und der andere LOW, wird der lineare Aktuator ausfahren oder einfahren. Wenn beide Eingänge entweder HIGH oder LOW sind, stoppt der lineare Aktuator.
  • OUT1 & OUT2-Pins: sind mit dem linearen Aktuator A verbunden.

Pins von Kanal B:

  • ENB-Pins dienen dazu, die Geschwindigkeit des linearen Aktuators B zu steuern. Das Entfernen des Jumpers und das Verbinden dieses Pins mit dem PWM-Eingang ermöglichen es uns, die Ausfahr-/Einfahrgeschwindigkeit des linearen Aktuators B zu steuern.
  • IN3- und IN4-Pins werden verwendet, um die Bewegungsrichtung eines linearen Aktuators zu steuern. Wenn einer von ihnen hoch ist und der andere niedrig, fährt der lineare Aktuator aus bzw. fährt ein. Wenn beide Eingänge entweder hoch oder niedrig sind, kommt der lineare Aktuator zum Stillstand.
  • OUT3- und OUT4-Pins sind mit einem linearen Aktuator verbunden.

Wie oben beschrieben, verfügt der L298N-Treiber über zwei Eingangsspannungen:

  • Eine für den linearen Aktuator (VCC- und GND-Pins): von 5 bis 35 V.
  • Eine 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 für fortgeschrittene Anwendungen oder andere Zwecke. Um die Sache zu vereinfachen, entfernen Sie bitte alle Jumper vom L298N-Treiber.

Wir können zwei Linearantriebe gleichzeitig unabhängig voneinander steuern, indem wir einen ESP32 und einen L298N-Treiber verwenden. Um jeden Linearantrieb zu steuern, benötigen wir vom ESP32 nur drei Pins.

※ Notiz:

Der Rest dieses Tutorials steuert einen Linearantrieb über Kanal A. Die Steuerung des anderen Linearantriebs ist ähnlich.

So steuern Sie einen Linearantrieb

Wir lernen, wie man einen Linearantrieb mit dem L298N-Treiber steuert.

Schaltplan

Bitte entfernen Sie alle drei Jumper am L298N-Modul, bevor Sie die Verkabelung vornehmen.

ESP32-Linearantrieb L298N-Treiber Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Wie man einen Linearantrieb ausfahren/einfahren lässt

Die Bewegungsrichtung eines Linearantriebs kann gesteuert werden, indem an die Pins IN1 und IN2 ein logisches HIGH bzw. LOW angelegt wird. Die folgende Tabelle veranschaulicht, wie man die Richtung in beiden Kanälen steuert.

IN1 pin IN2 pin Direction
LOW LOW Linear Actuator A stops
HIGH HIGH Linear Actuator A stops
HIGH LOW Linear Actuator A extends
LOW HIGH Linear Actuator A retracts
  • Verlängert Linearantrieb A
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Zieht den Linearantrieb A ein
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ Notiz:

Die Bewegungsrichtung ist umgekehrt, wenn die Pins OUT1 und OUT2 in umgekehrter Weise an zwei Pins des Linearantriebs angeschlossen sind. Falls dies der Fall ist, muss lediglich OUT1- und OUT2-Pins vertauscht werden oder das Steuersignal an IN1- und IN2-Pins im Code geändert werden.

Wie man einen Linearantrieb daran hindert, auszufahren oder einzufahren

Der Linearantrieb stoppt automatisch, wenn er den Anschlag erreicht. Wir können ihn auch programmatisch daran hindern, auszufahren oder einzufahren, solange er den Anschlag noch nicht erreicht hat.

Es gibt zwei Möglichkeiten, den Linearantrieb zu stoppen.

  • Stellt die Geschwindigkeit auf 0 ein.
analogWrite(ENA_PIN, 0);
  • Steuert die Pins IN1 und IN2 auf denselben Wert (niedrig oder hoch)
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);

.oder

digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

So steuern Sie die Geschwindigkeit eines Linearantriebs über den L298N-Treiber

Es ist einfach, die Geschwindigkeit des Linearantriebs zu steuern. Anstatt den ENA-Pin auf HIGH zu setzen, generieren wir ein PWM-Signal an den ENA-Pin. Dies können wir tun, indem wir:

  • Schließe einen ESP32-Pin an den ENA-Pin des L298N an.
  • Erzeuge ein PWM-Signal am ENA-Pin, indem du die Funktion analogWrite() verwendest. Der L298N-Treiber verstärkt das PWM-Signal für den Linearantrieb.
analogWrite(ENA_PIN, speed); // Geschwindigkeit ist ein Wert von 0 bis 255

Die Geschwindigkeit ist ein Wert zwischen 0 und 255. Wenn die Geschwindigkeit 0 ist, stoppt der Linearantrieb. Wenn die Geschwindigkeit 255 ist, fährt der Linearantrieb mit maximaler Geschwindigkeit aus bzw. ein.

ESP32-Beispielcode

Der unten stehende Code führt Folgendes aus:

  • Den Linearantrieb mit maximaler Geschwindigkeit ausfahren
  • Den Linearantrieb stoppen
  • Den Linearantrieb mit maximaler Geschwindigkeit einfahren
  • Den Linearantrieb stoppen
/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser 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/esp32/esp32-actuator */ #define ENA_PIN 27 // The ESP32 pin GPIO27 connected to the EN1 pin L298N #define IN1_PIN 26 // The ESP32 pin GPIO26 connected to the IN1 pin L298N #define IN2_PIN 25 // The ESP32 pin GPIO25 connected to the IN2 pin L298N // the setup function runs once when you press reset or power the board void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } // the loop function runs over and over again forever void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // actuator will stop extending automatically when reaching the limit // retracts the actuator digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // actuator will stop retracting automatically when reaching the limit }

Schnelle Schritte

  • Entfernen Sie alle drei Jumper am L298N-Modul.
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino-IDE ein.
  • Kompilieren und auf das ESP32-Board hochladen, indem Sie auf die Hochladen-Schaltfläche in der Arduino-IDE klicken.
  • Sie werden Folgendes sehen:
    • Der Linearantrieb fährt aus und stoppt, sobald er den Endanschlag erreicht.
    • Der Linearantrieb hält die Position eine bestimmte Zeit lang.
    • Der Linearantrieb fährt zurück und stoppt, sobald er den Endanschlag erreicht.
    • Der Linearantrieb hält die Position eine bestimmte Zeit lang.
    • Der obige Prozess wird wiederholt.

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.

Verwandte Tutorials

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