ESP32 - Actionneur
Ce tutoriel vous explique comment utiliser un ESP32 pour contrôler un actionneur linéaire. En détail, nous allons apprendre :
- Comment fonctionne un actionneur linéaire
- Comment faire pour étendre ou rétracter un actionneur linéaire.
- Comment contrôler un actionneur linéaire à l'aide d'un pilote L298N.
- Comment contrôler la vitesse d'un actionneur linéaire.
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
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Au sujet de l'actionneur linéaire
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
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 à 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
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.
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
- Rétracte l'actionneur linéaire A
※ 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
- Contrôle les broches IN1 IN2 à la même valeur (LOW ou HIGH).
- Ou
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.
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
É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.