Arduino UNO R4 - Actionneur avec rétroaction

Ce tutoriel sur l'Arduino UNO R4 montre comment utiliser un actionneur linéaire à rétroaction dans vos projets de bricolage.

Dans la leçon précédente, nous avons utilisé un Arduino UNO R4 - Actionneur.. Ce type ne peut que s'allonger ou se rétracter, mais il ne nous indique pas sa position.

Maintenant, nous allons en apprendre davantage sur un actionneur linéaire à rétroaction. Il peut nous indiquer où il se trouve pendant qu'il se déplace, afin que nous puissions contrôler sa position exacte.

Dans ce guide simple, vous apprendrez :

Ce petit projet Arduino est adapté aux débutants. Suivez ce guide simple pour apprendre la programmation Arduino et créer un système de déplacement intelligent !

À propos de l'actuateur linéaire à rétroaction

Un actionneur linéaire à rétroaction est un type d'actionneur linéaire qui intègre un signal de rétroaction pour surveiller et contrôler sa position. Cette rétroaction provient d'un potentiomètre qui fournit une sortie en tension qui correspond à la position de l'actionneur.

Schéma de brochage du vérin linéaire à rétroaction

Un actionneur linéaire à rétroaction comporte cinq fils :

  • Fil d'alimentation positif de l'actionneur : Ce fil contrôle l'actionneur linéaire en utilisant une tension élevée (12 V, 24 V, 48 V).
  • Fil 5 V : Ce fil se connecte au potentiomètre de rétroaction. Branchez-le sur 5 V ou 3,3 V.
  • Fil de masse (GND) : Ce fil se connecte au potentiomètre de rétroaction. Branchez-le à la masse.
  • Fil du potentiomètre : Également appelé fil de rétroaction ou de sortie, ce fil transmet une valeur de tension qui varie en fonction de la position du débattement.
Brochage de l'actionneur linéaire à rétroaction

Comment ça marche

Lorsque nous appliquons une tension élevée aux fils positifs et négatifs, l'actionneur se déployera ou se rétractera. Plus précisément, si nous connectons :

  • Connectez 12 V (comme 12 V, 24 V, 48 V, etc.) et la masse aux fils positif et négatif respectivement : l'actionneur linéaire s'étend à pleine vitesse jusqu'à ce qu'il s'arrête en fin de course.
  • Connectez 12 V (comme 12 V, 24 V, 48 V, etc.) et la masse aux fils négatif et positif respectivement : l'actionneur linéaire se rétracte à pleine vitesse jusqu'à ce qu'il s'arrête en fin de course.
  • Si l'alimentation de l'actionneur est coupée (la masse connectée aux fils positifs et négatifs) pendant qu'il est en extension ou en rétraction, l'actionneur s'arrêtera.

※ Note:

  • La tension nécessaire pour piloter l'actionneur varie en fonction de ses spécifications. Consultez la fiche technique ou le manuel pour connaître la tension adaptée.
  • L'actionneur peut maintenir sa position sans alimentation, même s'il soutient un poids.

La tension dans le fil du potentiomètre varie en fonction de la position de l'actionneur. En mesurant cette tension, nous pouvons déterminer où se situe la course.

Schéma de câblage

Avant de câbler, retirez les trois cavaliers du module L298N.

Schéma de câblage du pilote L298N pour actionneur linéaire sur Arduino UNO R4

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter l'Arduino UNO R4..

Comment contrôler l'extension et la rétraction d'un actionneur linéaire

Visitez le tutoriel pour l'Arduino UNO R4 Actuator Arduino UNO R4 - Actionneur..

Comment trouver la position de l'actuateur linéaire

Voici comment trouver la position de la course sur un vérin linéaire :

Calibration

  • Mesurez la longueur de la course de l'actionneur (en millimètres) avec une règle ou consultez la fiche technique.
  • Trouvez les valeurs de sortie lorsque l'actionneur linéaire est complètement étendu et rétracté en exécutant le code suivant.
/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); }
  • Vous verrez le log sur le Moniteur série comme dans l'exemple ci-dessous.
COM6
Send
POTENTIOMETER_MAX = 987 POTENTIOMETER_MIN = 13
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Notez ces valeurs.
  • Si les valeurs minimales et maximales sont inversées, échangez IN1_PIN et IN2_PIN.
  • Mettez à jour trois valeurs dans le code ci-dessous.

Code Arduino UNO R4 qui calcule la position de l'actionneur

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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"); }
  • Modifiez les trois valeurs ajustées dans le code
  • Chargez le code sur l'Arduino UNO R4
  • Vérifiez le résultat dans le Moniteur série
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  

Comment contrôler un actionneur linéaire à une position précise

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); }

Vidéo

Résumé

Dans ce tutoriel sur Arduino UNO R4, vous avez appris à utiliser un actionneur linéaire à rétroaction pour des projets de bricolage. Ce guide facile vous a appris comment fonctionne l'actionneur, comment déterminer sa position en millimètres et comment le déplacer jusqu'au bon endroit avec la programmation Arduino. Après notre leçon sur un actionneur linéaire sans rétroaction, ce petit projet Arduino vous montre comment construire un système de déplacement intelligent. Maintenant, vous pouvez réaliser vos propres projets de contrôle du mouvement avec Arduino UNO R4 !

Références de fonctions

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !