ESP8266 - Actionneur de retour d'information

Dans un tutoriel précédent, nous avons discuté de l'actionneur linéaire sans retour. Ce tutoriel vous instruit sur l'actionneur linéaire à retour (également connu sous le nom d'actionneur linéaire à feedback). Ce type d'actionneur linéaire fournit des informations pour identifier la position de sa course et la contrôler. Plus précisément, nous allons apprendre :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×12V Linear Feedback Actuator
1×L298N Motor Driver Module
1×12V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de l'actionneur linéaire à retour d'information

Un actionneur linéaire avec retour d'information est celui qui possède un signal pour identifier sa position et la gérer. Un potentiomètre est utilisé pour générer la valeur de tension en relation avec la position de la course comme retour d'information.

Brochage de l'actionneur linéaire à retour d'information

Un actionneur linéaire à retour d'information possède 5 fils :

  • Fil positif de l'actionneur : Ce fil est utilisé pour contrôler l'actionneur linéaire en appliquant une haute tension (12V, 24V, 48V...).
  • Fil négatif de l'actionneur : Ce fil est utilisé pour contrôler l'actionneur linéaire en appliquant une haute tension (12V, 24V, 48V...).
  • Fil de 5V : ce fil est utilisé pour le potentiomètre de retour. Il doit être connecté à 5V ou 3.3V.
  • Fil GND : ce fil est utilisé pour le potentiomètre de retour. Il doit être connecté à GND.
  • Fil de potentiomètre : (également appelé fil de retour, ou fil de sortie) ce fil délivre la valeur de tension selon la position de la course.
Retour d'information sur le brochage de l'actionneur linéaire

Comment ça fonctionne

Si nous appliquons une haute tension aux fils positif et négatif, la course de l'actionneur sera étendue ou rétractée. Plus précisément :

  • Si 12V (12V, 24V, 48V…) est connecté au fil positif et GND au fil négatif, l'actionneur linéaire se déploiera à pleine vitesse jusqu'à ce qu'il atteigne la limite.
  • Si 12V (12V, 24V, 48V…) est connecté au fil négatif et GND au fil positif, l'actionneur linéaire se rétractera à pleine vitesse jusqu'à ce qu'il atteigne la limite.
  • Si l'alimentation est coupée de l'actionneur (GND aux fils positif et négatif), l'actionneur cessera de se déployer/se rétracter.

※ NOTE THAT:

  • La tension nécessaire pour faire fonctionner l'actionneur est déterminée par ses spécifications. Pour connaître la tension exacte, consultez la fiche technique ou le manuel.
  • Même lorsque l'alimentation est coupée, l'actionneur peut maintenir sa position tout en supportant une charge.

La tension dans le fil du potentiomètre est directement liée à la position de la course de l'actionneur. En mesurant cette tension, nous pouvons déterminer la position de la course.

Schéma de câblage

Retirez les trois cavaliers du module L298N avant de connecter les fils.

Schéma de câblage du pilote L298N pour actionneur linéaire ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

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

Consultez le tutoriel ESP8266 - Actionneur.

Comment trouver la position de l'actionneur linéaire

Ceci est une illustration de la façon de localiser le trait sur un actionneur linéaire.

Étalonnage

  • Déterminez la longueur de la course de l'actionneur (en millimètres) en mesurant avec une règle ou en consultant la fiche technique.
  • Pour déterminer les valeurs de sortie lorsque l'actionneur linéaire est entièrement étendu et entièrement rétracté, exécutez le code ci-dessous.
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-feedback-actuator */ // The code for getting the feedback when the actuator fully extended and retracted #define ENA_PIN 7 // The ESP8266 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The ESP8266 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The ESP8266 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The ESP8266 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 observerez le journal sur le moniteur série, comme démontré dans l'exemple ci-dessous.
COM6
Send
POTENTIOMETER_MAX = 987 POTENTIOMETER_MIN = 13
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Notez les trois valeurs dans le code ci-dessous. Si les valeurs minimale et maximale sont inversées, inversez IN1_PIN et IN2_PIN.

Prenez note des trois valeurs dans le code ci-dessous. Si les valeurs minimale et maximale sont transposées, échangez les IN1_PIN et IN2_PIN.

Code ESP8266 qui calcule la position de l'actionneur

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-feedback-actuator */ #define ENA_PIN 7 // The ESP8266 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The ESP8266 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The ESP8266 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The ESP8266 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"); }
  • Mettez à jour le code avec les trois valeurs étalonnées.
  • Téléchargez le code sur ESP8266.
  • Vérifiez le résultat sur 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 spécifique

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-feedback-actuator */ #define ENA_PIN 7 // The ESP8266 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The ESP8266 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The ESP8266 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The ESP8266 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éférences de Fonction

Tutoriels connexes

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!