ESP32 - Actionneur

Ce tutoriel vous explique comment utiliser un ESP32 pour contrôler un actionneur linéaire. En détail, nous allons apprendre :

Ce tutoriel est destiné aux actionneurs linéaires sans retour d'information. Si vous souhaitez en savoir plus sur les actionneurs linéaires avec retour d'information, consultez ce tutoriel ESP32 - Actionneur avec retour d'information.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Linear Actuator
1×L298N Motor Driver Module
1×12V Power Adapter
1×(Optional) DC Power Jack
1×Breadboard
1×Jumper Wires
1×(Recommended) ESP32 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.

Au sujet de l'actionneur linéaire

Actionneur linéaire Étendre Rétracter

Brochage de l'actionneur linéaire

L'actionneur linéaire a deux fils :

  • Fil positif : généralement rouge
  • Fil négatif : généralement noir
Brochage de l'actionneur linéaire

Comment ça marche

Lorsque vous achetez un actionneur linéaire, vous devez savoir avec quelle tension fonctionne l'actionneur linéaire. Prenons l'exemple d'un actionneur linéaire de 12V.

Lorsque vous alimentez l'actionneur linéaire 12V avec une source d'alimentation de 12V :

  • 12V et GND sur le fil positif et le fil négatif, respectivement : l'actionneur linéaire se déploie à pleine vitesse jusqu'à atteindre la limite.
  • 12V et GND sur le fil négatif et le fil positif, respectivement : l'actionneur linéaire se rétracte à pleine vitesse jusqu'à atteindre la limite.

Lors de l'extension ou de la rétraction, si nous arrêtons l'alimentation de l'actionneur (GND sur les fils positif et négatif), l'actionneur cesse de s'étendre ou de se rétracter.

※ NOTE THAT:

Pour les moteurs à courant continu, les moteurs servo et les moteurs pas à pas sans engrenage, lorsqu'ils transportent une charge, s'ils ne sont plus alimentés, ils ne peuvent pas maintenir la position. Contrairement à ces moteurs, l'actionneur peut maintenir la position même lorsqu'il cesse d'être alimenté tout en portant une charge.

Si nous fournissons une puissance inférieure à 12V aux vérins linéaires, le vérin s'étend/se rétracte toujours mais pas à vitesse maximale. Cela signifie que si nous modifions la tension de l'alimentation, nous pouvons changer la vitesse du vérin linéaire. Cependant, cette méthode n'est pas utilisée en pratique en raison de la difficulté à contrôler la tension de la source d'alimentation. Au lieu de cela, nous fixons la tension de la source d'alimentation et contrôlons la vitesse du vérin linéaire via un signal PWM. Plus le cycle de travail du PWM est élevé, plus la vitesse d'extension/rétraction du vérin linéaire est grande.

Comment contrôler un actionneur linéaire

Comment contrôler un actionneur linéaire à l'aide d'un ESP32

La commande d'un actionneur linéaire comprend :

  • étend l'actionneur linéaire à vitesse maximale.
  • Rétracte l'actionneur linéaire à vitesse maximale.
  • (optionnel) contrôle la vitesse d'extension/de rétraction.

L'ESP32 peut générer le signal pour contrôler l'actionneur linéaire. Cependant, ce signal a une faible tension et un faible courant, nous ne pouvons donc pas l'utiliser pour contrôler l'actionneur linéaire. Nous devons utiliser un pilote matériel entre l'ESP32 et l'actionneur linéaire. Le pilote effectue deux tâches :

  • Amplifier le signal de commande de l'ESP32 (courant et tension)
  • Recevoir un autre signal de commande de l'ESP32 pour inverser la polarité de l'alimentation → pour contrôler la direction.

※ NOTE THAT:

  • Ce tutoriel peut être appliqué à tous les actionneurs linéaires. L'actionneur linéaire 12V n'est qu'un exemple.
  • Lorsque vous contrôlez un actionneur linéaire de 5V, bien que la broche ESP32 délivre 5V (la même tension que l'actionneur linéaire), vous avez toujours besoin d'un pilote entre l'ESP32 et l'actionneur linéaire car la broche ESP32 ne fournit pas assez de courant pour l'actionneur linéaire.

Il existe de nombreux types de puces et de modules (par exemple, L293D, L298N) qui peuvent être utilisés comme pilotes d'actionneurs linéaires. Dans ce tutoriel, nous utiliserons le pilote L298N.

※ NOTE THAT:

Vous pouvez également utiliser des relais comme pilote. Cependant, il nécessite 4 relais pour contrôler un actionneur linéaire unique (à la fois pour étendre et rétracter).

À propos du pilote L298N

Le pilote L298N peut être utilisé pour contrôler un vérin linéaire, un moteur à courant continu et un moteur pas à pas. Dans ce tutoriel, nous apprenons à l'utiliser pour contrôler le vérin linéaire.

Brochage du pilote L298N

Brochage du pilote L298N

Le pilote L298N dispose de deux canaux, appelés canal A et canal B. Par conséquent, le pilote L298N peut contrôler deux actionneurs linéaires indépendamment en même temps. Supposons que l'actionneur linéaire A soit connecté au canal A, l'actionneur linéaire B soit connecté au canal B. Le pilote L298N possède 13 broches :

Les broches communes pour les deux canaux :

  • Broche VCC : alimente l'actionneur linéaire. Elle peut varier entre 5 et 35V.
  • Broche GND : est une broche de masse commune, doit être connectée à GND (0V).
  • Broche 5V : alimente le module L298N. Elle peut être alimentée par 5V provenant de l'ESP32.

Broches du canal A :

  • Broches ENA : servent à contrôler la vitesse de l'actionneur linéaire A. Retirer le cavalier et connecter cette broche à une entrée PWM nous permettra de contrôler la vitesse d'extension/de rétraction de l'actionneur linéaire A.
  • Broches IN1 & IN2 : sont utilisées pour contrôler la direction de déplacement d'un actionneur linéaire. Lorsque l'une d'elles est HIGH et l'autre LOW, l'actionneur linéaire s'étendra ou se rétractera. Si les deux entrées sont HIGH ou LOW, l'actionneur linéaire s'arrêtera.
  • Broches OUT1 & OUT2 : sont connectées à l'actionneur linéaire A.

Broches du canal B :

  • Broches ENB : sont utilisées pour contrôler la vitesse de l'actionneur linéaire B. En retirant le cavalier et en connectant cette broche à une entrée PWM, nous pouvons contrôler la vitesse d'extension/rétraction de l'actionneur linéaire B.
  • Broches IN3 & IN4 : sont utilisées pour contrôler la direction de déplacement d'un actionneur linéaire. Lorsque l'une d'elles est HAUTE et l'autre est BASSE, l'actionneur linéaire s'étendra ou se rétractera. Si les deux entrées sont soit HAUTES soit BASSES, l'actionneur linéaire s'arrêtera.
  • Broches OUT3 & OUT4 : sont connectées à un actionneur linéaire.

Comme décrit ci-dessus, le driver L298N possède deux alimentations d'entrée :

  • Un pour actionneur linéaire (broches VCC et GND) : de 5 à 35V.
  • Un pour le fonctionnement interne du module L298N (broches 5V et GND) : de 5 à 7V.

Le pilote L298N possède également trois cavaliers pour des utilisations avancées ou autres. Pour des raisons de simplicité, veuillez retirer tous les cavaliers du pilote L298N.

Nous pouvons contrôler deux actionneurs linéaires indépendamment et simultanément en utilisant un ESP32 et un pilote L298N. Pour contrôler chaque actionneur linéaire, nous avons besoin de seulement trois broches de l'ESP32.

※ NOTE THAT:

Le reste de ce tutoriel permet de contrôler un actionneur linéaire en utilisant le canal A. Le contrôle de l'autre actionneur linéaire est similaire.

Comment contrôler un actionneur linéaire

Nous apprendrons comment contrôler un actionneur linéaire à l'aide d'un pilote L298N.

Schéma de câblage

Veuillez retirer les trois cavaliers du module L298N avant de procéder au câblage.

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

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Comment faire pour que l'actionneur linéaire se déploie/se rétracte

La direction de mouvement d'un actionneur linéaire peut être contrôlée en appliquant un niveau logique HAUT/BAS aux broches IN1 et IN2. Le tableau ci-dessous illustre comment contrôler la direction dans les deux canaux.

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
  • Étend l'actionneur linéaire A
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Rétracte l'actionneur linéaire A
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ NOTE THAT:

La direction de mouvement est inversée si les broches OUT1 & OUT2 sont connectées de manière inverse aux deux broches de l'actionneur linéaire. Dans ce cas, il suffit d'interchanger les broches OUT1 & OUT2 ou de modifier le signal de commande sur les broches IN1 et IN2 dans le code.

Comment empêcher un actionneur linéaire de s'étendre ou de se rétracter

L'actionneur linéaire s'arrête automatiquement de s'étendre/se rétracter lorsqu'il atteint la limite. Nous pouvons également l'arrêter de façon programmable alors qu'il n'a pas atteint la limite.

Il existe deux façons d'arrêter un actionneur linéaire.

  • Contrôle la vitesse à 0
analogWrite(ENA_PIN, 0);
  • Contrôle les broches IN1 IN2 à la même valeur (LOW ou HIGH).
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • Ou
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

Comment contrôler la vitesse d'un actionneur linéaire via le pilote L298N

Il est simple de contrôler la vitesse de l'actionneur linéaire. Au lieu de mettre la broche ENA à HIGH, nous générons un signal PWM vers la broche ENA. Nous pouvons le faire en :

  • Connectez une broche ESP32 à ENA de L298N
  • Générez un signal PWM sur la broche ENA en utilisant la fonction analogWrite(). Le pilote L298N amplifie le signal PWM vers un actionneur linéaire.
analogWrite(ENA_PIN, speed); // la vitesse est une valeur de 0 à 255

La vitesse est une valeur comprise entre 0 et 255. Si la vitesse est de 0, l'actionneur linéaire s'arrête. Si la vitesse est de 255, l'actionneur linéaire se déploie/se rétracte à la vitesse maximale.

Exemple de code ESP32

Le code ci-dessous fait :

  • Étendre l'actionneur à vitesse maximale
  • Arrêter l'actionneur linéaire
  • Rétracter l'actionneur à vitesse maximale
  • Arrêter l'actionneur linéaire
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/esp32-actuator */ #define ENA_PIN 27 // The ESP32 pin GPIO27 connected to the EN1 pin L298N #define IN1_PIN 26 // The ESP32 pin GPIO26 connected to the IN1 pin L298N #define IN2_PIN 25 // The ESP32 pin GPIO25 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 }

Étapes rapides

  • Retirez les trois cavaliers sur le module L298N.
  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans l'IDE Arduino.
  • Vous verrez :
    • L'actionneur linéaire s'étend puis s'arrête lorsqu'il atteint la limite.
    • L'actionneur linéaire maintient la position pendant un certain temps.
    • L'actionneur linéaire se rétracte puis s'arrête lorsqu'il atteint la limite.
    • L'actionneur linéaire maintient la position pendant un certain temps.
    • Le processus ci-dessus est répété en boucle.

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!