Arduino - Aktuator

In diesem Tutorial lernen wir:

Dieses Tutorial ist für einen Linearantrieb ohne Rückkopplung. Wenn Sie mehr über Linearantriebe mit Rückkopplung erfahren möchten, sehen Sie sich dieses Arduino - Aktuator mit Rückkopplung Tutorial an.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Linearaktor
1×L298N Motortreiber-Modul
1×12V Netzteil
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino 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

Linearantrieb hat zwei Drähte:

  • Positiver Draht: normalerweise rot
  • Negativer Draht: normalerweise schwarz
Pinbelegung eines Linearantriebs

So funktioniert es

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

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

  • 12 V und GND jeweils an den positiven Draht bzw. den negativen Draht anschließen: Der Linearantrieb fährt mit voller Geschwindigkeit aus, bis er den Endanschlag erreicht.
  • 12 V und GND jeweils an den negativen Draht bzw. den positiven Draht anschließen: Der Linearantrieb fährt mit voller Geschwindigkeit ein, bis er den Endanschlag erreicht.

Während des Ausfahrens oder Einfahrens stoppt der Stellantrieb, wenn wir ihm die Versorgung unterbrechen (GND an beide Leitungen, positiv und negativ).

※ Notiz:

Für Gleichstrommotoren, Servomotoren und Schrittmotoren ohne Getriebe gilt: Unter Last können sie die Position nicht halten, wenn die Stromzufuhr abgeschaltet wird. Im Gegensatz zu diesen Motoren kann der Aktuator die Position auch beibehalten, während eine Last getragen wird, selbst wenn die Stromzufuhr abgeschaltet ist.

Wenn wir Linearantriebe unter 12 V mit Strom versorgen, fährt der Linearantrieb dennoch aus bzw. ein, aber nicht mit maximaler Geschwindigkeit. Das bedeutet, dass wir die Spannung der Stromversorgung ändern können, um die Geschwindigkeit des Linearantriebs zu verändern. Allerdings wird diese Methode in der Praxis nicht verwendet, da es schwierig ist, die Spannung der Stromversorgung zu steuern. Stattdessen fixieren wir die Spannung der Stromversorgung und steuern die Geschwindigkeit des Linearantriebs über ein PWM-Signal. Je größer der Tastgrad des PWM-Signals ist, desto schneller fährt der Linearantrieb aus bzw. ein.

Wie man einen Linearantrieb steuert.

Wie man einen Linearantrieb mit Arduino 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 Ausfahr- und Einfahrgeschwindigkeit.

Arduino kann das Signal erzeugen, um den Linearantrieb zu steuern. Allerdings hat dieses Signal eine geringe Spannung und einen geringen Strom, daher können wir es nicht verwenden, um den Linearantrieb zu steuern. Wir müssen dazwischen einen Hardwaretreiber verwenden. Der Treiber erledigt zwei Aufgaben:

  • Das Steuersignal vom Arduino verstärken (Strom und Spannung)
  • Ein weiteres Steuersignal vom Arduino empfangen, um die Polarität des Netzteils 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 Arduino-Pin 5 V ausgibt (die gleiche Spannung wie der Linearantrieb), benötigen Sie dennoch einen Treiber zwischen Arduino und Linearantrieb, da der Arduino-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 auch Relais als Treiber verwenden. Allerdings benötigt man vier Relais, um einen einzelnen Linearantrieb zu steuern (ausfahren und 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 als Kanal A und Kanal B bezeichnet 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 und der Linearantrieb B an Kanal B. Der L298N-Treiber hat 13 Pins:

Die gemeinsamen Pins für beide Kanäle:

  • VCC-Pin: versorgt den Linearantrieb mit Strom. Er kann zwischen 5 und 35 V liegen.
  • GND-Pin: ist ein gemeinsamer Masse-Anschluss und muss mit GND (0 V) verbunden werden.
  • 5V-Pin: versorgt das L298N-Modul mit Strom. Es kann mit 5V vom Arduino versorgt werden.

Kanal A-Pins:

  • ENA-Pins: Sie dienen der Steuerung der Geschwindigkeit des Linearantriebs A. Durch das Entfernen der Brücke und das Anschließen dieses Pins an den PWM-Eingang lässt sich die Ausfahr- bzw. Einfahrgeschwindigkeit des Linearantriebs A steuern.
  • IN1- und IN2-Pins: IN1- und IN2-Pins dienen der Steuerung der Bewegungsrichtung eines Linearantriebs. Wenn einer von ihnen HIGH ist und der andere LOW, fährt der Linearantrieb aus oder ein. Sind beide Eingänge entweder HIGH oder LOW, stoppt der Linearantrieb.
  • OUT1- und OUT2-Pins: OUT1- und OUT2-Pins sind mit dem Linearantrieb A verbunden.

Kanal B Pins:

  • ENB-Pins: Werden verwendet, um die Geschwindigkeit des linearen Aktuators B 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 B zu steuern.
  • IN3- und IN4-Pins: Werden verwendet, um die Bewegungsrichtung eines linearen Aktuators zu steuern. Wenn einer von ihnen HIGH ist und der andere LOW, fährt der lineare Aktuator aus oder ein. Sind beide Eingänge entweder HIGH oder LOW, stoppt der lineare Aktuator.
  • OUT3- und OUT4-Pins: Sind mit einem linearen Aktuator verbunden.

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

  • Einer für den linearen Aktuator (VCC- und GND-Pins): von 5 bis 35 V.
  • Einer für den internen Betrieb des L298N-Moduls (5V- und GND-Pins): von 5 bis 7 V.

Der L298N-Treiber verfügt auch über drei Jumper für fortgeschrittene Anwendungen oder andere Zwecke. Zur Vereinfachung entfernen Sie bitte alle Jumper vom L298N-Treiber.

Wir können zwei lineare Aktuatoren gleichzeitig unabhängig voneinander steuern, indem wir einen Arduino und einen L298N-Treiber verwenden. Um jeden linearen Aktuator zu steuern, benötigen wir nur drei Pins vom Arduino.

※ Notiz:

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

Wie man einen linearen Stellantrieb steuert

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

Schaltplan

Bitte entfernen Sie vor dem Verkabeln alle drei Jumper am L298N-Modul.

Arduino Linearantrieb L298N Treiber Verdrahtungsdiagramm

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

Wie man einen Linearantrieb aus- und einfährt

Die Bewegungsrichtung eines Linearantriebs kann durch das Anwenden eines logischen HIGH/LOW auf die Pins IN1 und IN2 gesteuert werden. Die untenstehende Tabelle zeigt, wie die Richtung in beiden Kanälen gesteuert wird.

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 Linearantrieb A zurück.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ Notiz:

Die Bewegungsrichtung ist invertiert, wenn OUT1- und OUT2-Pins auf eine invertierte Weise mit zwei Pins des Linearantriebs verbunden sind. Falls dies der Fall ist, muss im Code lediglich OUT1- und OUT2-Pins getauscht werden oder das Steuersignal an IN1- und IN2-Pins geändert werden.

Wie man einen Linearantrieb daran hindert, sich auszufahren oder einzufahren

Der Linearantrieb stoppt automatisch das Ausfahren bzw. Einfahren, sobald er die Endlage erreicht hat. Wir können es auch programmgesteuert daran hindern, auszufahren bzw. einzufahren, solange es die Endlage noch nicht erreicht hat.

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

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

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

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

  • Verbinden Sie einen Arduino-Pin mit ENA des L298N.
  • Generieren Sie ein PWM-Signal am ENA-Pin unter Verwendung der analogWrite()-Funktion. 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 beträgt, fährt der Linearantrieb mit maximaler Geschwindigkeit aus bzw. ein.

Arduino-Beispielcode

Der untenstehende Code tut Folgendes:

  • Stellantrieb mit maximaler Geschwindigkeit ausfahren
  • Linearantrieb stoppen
  • Stellantrieb mit maximaler Geschwindigkeit einfahren
  • Linearantrieb stoppen
/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-actuator */ // constants won't change const int ENA_PIN = 9; // the Arduino pin connected to the EN1 pin L298N const int IN1_PIN = 6; // the Arduino pin connected to the IN1 pin L298N const int IN2_PIN = 5; // the Arduino pin 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 öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Upload-Schaltfläche, um den Code auf den Arduino hochzuladen.
  • Sie werden sehen:
    • Der Linearantrieb fährt aus und stoppt dann, wenn er das Limit erreicht.
    • Der Linearantrieb hält die Position für eine gewisse Zeit.
    • Der Linearantrieb fährt ein und stoppt dann, wenn er das Limit erreicht.
    • Der Linearantrieb hält die Position für eine gewisse Zeit.
    • Der oben genannte Prozess wird wiederholt ausgeführt.

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!