Arduino UNO R4 - Actuator met Feedback

Deze Arduino UNO R4 tutorial toont hoe u een *lineaire actuator met feedback* kunt gebruiken in uw doe-het-zelf projecten.

In de vorige les hebben we een lineaire actuator zonder feedback gebruikt. Dat type beweegt alleen in of uit, maar vertelt ons niet de positie.

Nu gaan we leren over een lineaire actuator met feedback. Deze kan ons vertellen waar hij zich bevindt tijdens het bewegen, zodat we de exacte positie kunnen besturen.

In deze eenvoudige gids leert u:

Dit eenvoudige Arduino project is geschikt voor beginners. Volg deze makkelijke gids om Arduino programmeren te leren en een slim bewegingssysteem te maken!

Over Lineaire Actuator met Feedback

Een lineaire actuator met feedback is een type lineaire actuator dat een feedbacksignaal bevat om de positie te monitoren en besturen. Deze feedback komt van een potentiometer die een spanningsuitgang levert die overeenkomt met de positie van de actuator.

Lineaire Actuator met Feedback Pinout

Een Lineaire Actuator met Feedback heeft vijf draden:

  • Actuator Positieve Draad: Deze draad bestuurt de lineaire actuator met hoge spanning (12V, 24V, 48V).
  • 5V Draad: Deze draad verbindt met de feedback potentiometer. Sluit deze aan op 5V of 3.3V.
  • GND Draad: Deze draad verbindt met de feedback potentiometer. Sluit deze aan op de massa (GND).
  • Potentiometer Draad: Ook bekend als de feedback of uitgang draad, deze draad zendt een spanningswaarde uit die verandert op basis van de positie van de slag.
Feedback Linear Actuator Pinout

Hoe het werkt

Wanneer we een hoge spanning leveren aan de positieve en negatieve draden, zal de actuator uitschuiven of intrekken. Specifiek, als we verbinden:

  • Verbind 12V (zoals 12V, 24V, 48V...) en GND respectievelijk met de positieve en negatieve draden: de lineaire actuator schuift op volle snelheid uit tot deze stopt aan het einde.
  • Verbind 12V (zoals 12V, 24V, 48V...) en GND respectievelijk met de negatieve en positieve draden: de lineaire actuator trekt op volle snelheid in tot deze stopt aan het einde.
  • Als de stroom van de actuator wordt weggenomen (GND verbonden met zowel positieve als negatieve draden) terwijl deze uitschuift of intrekt, zal de actuator stoppen met bewegen.

※ Notiz:

  • De spanning die nodig is om de actuator te besturen varieert op basis van de specificaties. Controleer het gegevensblad of de handleiding om de juiste spanning te vinden.
  • De actuator kan zijn positie behouden zonder stroom, zelfs als deze een gewicht vasthoudt.

De spanning in de draad van de potentiometer verandert volgens waar de actuator beweegt. Door deze spanning te controleren, kunnen we uitvinden waar de slag is gepositioneerd.

Bedradingsschema

Verwijder voor het bedraden alle drie de jumpers van de L298N module.

Arduino UNO R4 Linear Actuator L298N Driver Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

Hoe u het uitschuiven/intrekken van een lineaire actuator kunt besturen

Bezoek de tutorial voor de Arduino UNO R4 Actuator hier.

Hoe u de positie van de lineaire actuator kunt vinden

Hier is hoe u de slagpositie op een lineaire actuator kunt vinden:

Kalibratie

  • Meet de lengte van de slag van de actuator (in millimeters) met een liniaal of controleer het gegevensblad.
  • Vind de uitgangswaarden wanneer de lineaire actuator volledig uitgeschoven en ingetrokken is door de volgende code uit te voeren.
/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }
  • U zult het logboek op de Serial Monitor zien zoals getoond in het onderstaande voorbeeld.
COM6
Send
POTENTIOMETER_MAX = 987 POTENTIOMETER_MIN = 13
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Noteer deze waarden.
  • Als de minimum en maximum waarden omgekeerd zijn, wissel IN1_PIN met IN2_PIN.
  • Update drie waarden in de onderstaande code.

Arduino UNO R4 code die de positie van de actuator berekent

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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"); }
  • Wijzig de drie aangepaste waarden in de code
  • Laad de code op Arduino UNO R4
  • Controleer het resultaat op de 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  

Hoe u een lineaire actuator naar een specifieke positie kunt besturen

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Samenvatting

In deze Arduino UNO R4 tutorial hebt u geleerd hoe u een lineaire actuator met feedback kunt gebruiken voor doe-het-zelf projecten. Deze eenvoudige gids leerde u hoe de actuator werkt, hoe u de positie in millimeters kunt vinden, en hoe u deze naar de juiste plek kunt bewegen met Arduino programmeren. Na onze les over een lineaire actuator zonder feedback, toont dit eenvoudige Arduino project u hoe u een slim bewegingssysteem kunt maken. Nu kunt u uw eigen bewegingsbestuurprojecten bouwen met Arduino UNO R4!

Opmerkingen

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!