Arduino UNO R4 - Aktuator mit Feedback

Dieses Arduino UNO R4-Tutorial zeigt, wie man einen *Feedback-Linearantrieb* in Ihren DIY-Projekten einsetzt.

In der vorherigen Lektion haben wir einen Linearantrieb ohne Rückkopplung verwendet. Diese Art bewegt sich nur hinein oder hinaus, liefert aber keine Auskunft über seine Position.

Nun lernen wir einen Linearantrieb mit Rückmeldung kennen. Er kann uns während der Bewegung sagen, wo er sich befindet, damit wir seine präzise Position steuern können.

In diesem einfachen Leitfaden wirst du lernen:

Dieses einfache Arduino-Projekt ist gut für Anfänger. Folge dieser einfachen Anleitung, um die Arduino-Programmierung zu erlernen und ein intelligentes Bewegungssystem zu erstellen!

Über den Linearantrieb mit Feedback

Ein Linearantrieb mit Rückkopplung ist eine Art von Linearantrieb, der ein Rückkopplungssignal enthält, um seine Position zu überwachen und zu steuern. Dieses Rückkopplungssignal stammt von einem Potentiometer, das eine Ausgangsspannung liefert, die der Position des Antriebs entspricht.

Pinbelegung des Rückkopplungs-Linearantriebs

Ein Linearantrieb mit Feedback hat fünf Drähte:

  • Positivleitung des Aktuators: Dieses Kabel steuert den Linearantrieb mit Hochspannung (12 V, 24 V, 48 V).
  • 5-V-Leitung: Dieses Kabel ist mit dem Rückkopplungs-Potentiometer verbunden. Schließen Sie es an 5 V oder 3,3 V an.
  • GND-Leitung: Dieses Kabel ist mit dem Rückkopplungs-Potentiometer verbunden. Schließen Sie es an Masse (GND) an.
  • Potentiometerkabel: Auch bekannt als Rückkopplungs- oder Ausgabekabel, sendet dieses Kabel eine Spannung aus, die sich je nach Position des Hubwegs ändert.
Pinbelegung des Feedback-Linearantriebs

Wie es funktioniert

Wenn wir an die positiven und negativen Drähte eine Hochspannung anlegen, wird der Stellantrieb sich entweder ausfahren oder einfahren. Genauer gesagt, wenn wir anschließen:

  • Schließen Sie 12 V (wie 12 V, 24 V, 48 V ...) und GND an die jeweiligen positiven und negativen Kabel an: Der Linearantrieb fährt mit voller Geschwindigkeit aus, bis er am Ende stoppt.
  • Schließen Sie 12 V (wie 12 V, 24 V, 48 V ...) und GND an die jeweiligen negativen und positiven Kabel an: Der Linearantrieb fährt mit voller Geschwindigkeit ein, bis er am Ende stoppt.
  • Wird die Stromversorgung des Antriebs unterbrochen (GND ist sowohl mit dem positiven als auch mit dem negativen Draht verbunden), während er ausfährt oder einfährt, stoppt der Antrieb die Bewegung.

※ Notiz:

  • Die zur Steuerung des Stellantriebs benötigte Spannung variiert je nach seinen Spezifikationen. Prüfen Sie das Datenblatt oder das Handbuch, um die richtige Spannung herauszufinden.
  • Der Stellantrieb kann seine Position auch ohne Stromversorgung halten, selbst wenn er ein Gewicht trägt.

Die Spannung im Draht des Potentiometers ändert sich je nachdem, wo sich der Aktuator bewegt. Durch das Ablesen dieser Spannung können wir feststellen, an welcher Position der Hub sich befindet.

Verdrahtungsdiagramm

Bevor Sie verdrahten, entfernen Sie alle drei Jumper vom L298N-Modul.

Arduino UNO R4 Linearantrieb L298N-Treiber Verdrahtungsdiagramm

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

Siehe Der beste Weg, den Arduino Uno R4 und andere Komponenten mit Strom zu versorgen.

Wie man einen linearen Aktuator ausfährt und einzieht

Besuchen Sie das Tutorial zum Arduino UNO R4-Aktuator hier.

Wie man die Position des Linearantriebs findet

So finden Sie die Hubposition eines Linearantriebs:

Kalibrierung

  • Messen Sie den Hub des Aktuators (in Millimetern) mit einem Lineal oder prüfen Sie das Datenblatt.
  • Ermitteln Sie die Ausgabewerte, wenn der Linearantrieb vollständig ausgefahren bzw. eingefahren ist, indem Sie den folgenden Code ausführen.
/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 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-uno-r4/arduino-uno-r4-actuator-with-feedback */ // the code for getting the feedback when the actuator fully extended and retracted #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // wait for actuator fully extends. It will stop extending automatically when reaching the limit // read the analog in value: int POTENTIOMETER_MAX = analogRead(POTENTIOMETER_PIN); Serial.print("POTENTIOMETER_MAX = "); Serial.println(POTENTIOMETER_MAX); // retracts the actuator digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // wait for actuator fully extends. It will stop retracting automatically when reaching the limit int POTENTIOMETER_MIN = analogRead(POTENTIOMETER_PIN); Serial.print("POTENTIOMETER_MIN = "); Serial.println(POTENTIOMETER_MIN); }
  • Sie sehen das Protokoll im Serial Monitor, wie im untenstehenden Beispiel gezeigt.
COM6
Send
POTENTIOMETER_MAX = 987 POTENTIOMETER_MIN = 13
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Notiere diese Werte.
  • Wenn die minimalen und maximalen Werte vertauscht sind, tausche IN1_PIN mit IN2_PIN.
  • Passe drei Werte im untenstehenden Code an.

Arduino UNO R4-Code, der die Position des Aktuators berechnet

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 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-uno-r4/arduino-uno-r4-actuator-with-feedback */ #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator #define STROKE_LENGTH 102 // PLEASE UPDATE THIS VALUE (in millimeter) #define POTENTIOMETER_MAX 987 // PLEASE UPDATE THIS VALUE #define POTENTIOMETER_MIN 13 // PLEASE UPDATE THIS VALUE void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); int potentiometer_value = analogRead(POTENTIOMETER_PIN); int stroke_pos = map(potentiometer_value, POTENTIOMETER_MIN, POTENTIOMETER_MAX, 0, STROKE_LENGTH); Serial.print("The stroke's position = "); Serial.print(stroke_pos); Serial.println(" mm"); }
  • Ändere die drei angepassten Werte im Code
  • Lade den Code auf den Arduino UNO R4
  • Überprüfe das Ergebnis im Serial Monitor
COM6
Send
The stroke's position = 2 mm The stroke's position = 35 mm The stroke's position = 43 mm The stroke's position = 60 mm The stroke's position = 68 mm The stroke's position = 79 mm The stroke's position = 83 mm The stroke's position = 96 mm The stroke's position = 100 mm
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Wie man einen Linearantrieb auf eine bestimmte Position steuert

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 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-uno-r4/arduino-uno-r4-actuator-with-feedback */ #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator #define STROKE_LENGTH 102 // PLEASE UPDATE THIS VALUE (in millimeter) #define POTENTIOMETER_MAX 987 // PLEASE UPDATE THIS VALUE #define POTENTIOMETER_MIN 13 // PLEASE UPDATE THIS VALUE #define TOLERANCE 5 // in millimeter int targetPosition_mm = 50; // in millimeter void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { int potentiometer_value = analogRead(POTENTIOMETER_PIN); int stroke_pos = map(potentiometer_value, POTENTIOMETER_MIN, POTENTIOMETER_MAX, 0, STROKE_LENGTH); Serial.print("The stroke's position = "); Serial.print(stroke_pos); Serial.println(" mm"); if (stroke_pos < (targetPosition_mm - TOLERANCE)) ACTUATOR_extend(); else if (stroke_pos > (targetPosition_mm + TOLERANCE)) ACTUATOR_retract(); else ACTUATOR_stop(); } void ACTUATOR_extend() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); } void ACTUATOR_retract() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); } void ACTUATOR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); }

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.

Zusammenfassung

In diesem Arduino UNO R4-Tutorial lernst du, wie man einen Linearantrieb mit Rückmeldung für DIY-Projekte verwendet. Diese einfache Anleitung erklärt dir, wie der Linearantrieb funktioniert, wie man seine Position in Millimetern bestimmt und wie man ihn mit Arduino-Programmierung an die richtige Stelle bewegt. Nach unserer Lektion über einen Linearantrieb ohne Rückmeldung zeigt dir dieses einfache Arduino-Projekt, wie man ein intelligentes Bewegungssystem baut. Jetzt kannst du deine eigenen Bewegungssteuerungsprojekte mit dem Arduino UNO R4 bauen!

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!