Arduino - Actionneur

Dans ce tutoriel, 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 Arduino - Actionneur avec retour d'information.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Linear Actuator
1×L298N Motor Driver Module
1×12V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

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

Actionneur linéaire Étendre Rétracter

Brochage de l'actionneur linéaire

L'actionneur linéaire possède deux fils :

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

Comment ça fonctionne

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 par une source d'alimentation 12V :

  • 12V et GND au fil positif et au fil négatif, respectivement : l'actionneur linéaire s'étend à pleine vitesse jusqu'à ce qu'il atteigne la limite.
  • 12V et GND au fil négatif et au fil positif, respectivement : l'actionneur linéaire se rétracte à pleine vitesse jusqu'à ce qu'il atteigne la limite.

Lors de l'extension ou de la rétraction, si nous coupions 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 un moteur à courant continu, un moteur servo et un moteur pas à pas sans engrenage, lorsqu'ils portent une charge, s'ils cessent d'être 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 actionneurs linéaires, l'actionneur linéaire s'étend/se rétracte toujours mais pas à la vitesse maximale. Cela signifie que si nous changeons la tension de l'alimentation, nous pouvons modifier la vitesse de l'actionneur 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 de l'actionneur linéaire via un signal PWM. Plus le cycle de travail du PWM est grand, plus la vitesse à laquelle l'actionneur linéaire s'étend/se rétracte est élevée.

Comment contrôler un actionneur linéaire

Comment contrôler un actionneur linéaire avec un Arduino

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.

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

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

※ NOTE THAT:

  • Ce tutoriel peut être appliqué à tous les actionneurs linéaires. L'actionneur linéaire 12V est juste un exemple.
  • Lorsque vous contrôlez un actionneur linéaire de 5V, bien que la broche Arduino délivre 5V (la même tension que l'actionneur linéaire), vous avez toujours besoin d'un pilote entre l'Arduino et l'actionneur linéaire car la broche Arduino 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 un pilote. Cependant, cela nécessite 4 relais pour contrôler un seul actionneur linéaire (à la fois pour étendre et rétracter).

À propos du pilote L298N

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

Brochage du pilote L298N

Brochage du pilote L298N

Le driver L298N possède deux canaux, appelés canal A et canal B. Par conséquent, le driver 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, et l'actionneur linéaire B soit connecté au canal B. Le driver L298N a 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 au GND (0V).
  • Broche 5V : alimente le module L298N. Elle peut être alimentée par 5V provenant de l'Arduino.

Broches du canal A :

  • Broches ENA : servent à contrôler la vitesse de l'actionneur linéaire A. En retirant le cavalier et en connectant cette broche à une entrée PWM, nous pouvons contrôler la vitesse d'extension/de rétraction de l'actionneur linéaire A.
  • Broches IN1 et IN2 : sont utilisées pour contrôler la direction de mouvement d'un actionneur linéaire. Lorsque l'une d'elles est en mode HIGH et l'autre en mode LOW, l'actionneur linéaire s'étend ou se rétracte. Si les deux entrées sont soit HIGH soit LOW, l'actionneur linéaire s'arrêtera.
  • Broches OUT1 et OUT2 : sont connectées à un actionneur linéaire A.

Broches du canal B :

  • Broches ENB : sont utilisées pour contrôler la vitesse de l'actionneur linéaire B. La suppression du cavalier et la connexion de cette broche à une entrée PWM nous permettront de 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 mouvement d'un actionneur linéaire. Lorsque l'une d'elles est HAUTE et l'autre 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 pilote L298N dispose de deux alimentations d'entrée :

  • Un pour l'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 dispose également de trois cavaliers pour des utilisations avancées ou d'autres fins. Pour des raisons de simplicité, veuillez retirer tous les cavaliers du pilote L298N.

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

※ NOTE THAT:

Le reste de ce tutoriel permet de contrôler un actionneur linéaire à l'aide du canal A. La commande de l'autre actionneur linéaire est similaire.

Comment contrôler un actionneur linéaire

Nous apprendrons à contrôler un actionneur linéaire en utilisant un pilote L298N.

Schéma de câblage

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

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

This image is created using Fritzing. Click to enlarge image

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

La direction de déplacement d'un actionneur linéaire peut être contrôlée en appliquant un 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 et OUT2 sont connectées de manière inversée aux deux broches de l'actionneur linéaire. Si c'est le cas, il suffit d'intervertir les broches OUT1 et OUT2 ou de modifier le signal de commande sur les broches IN1 et IN2 dans le code.

Comment arrêter l'extension ou la rétraction d'un actionneur linéaire

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 manière programmable lorsqu'il n'a pas atteint la limite.

Il existe deux manières 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 un pilote L298N

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

  • Connectez une broche Arduino à ENA de L298N
  • Générez un signal PWM sur la broche ENA en utilisant la fonction analogWrite(). Le driver L298N amplifie le signal PWM vers l'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 à vitesse maximale.

Exemple de code Arduino

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 Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino-actuator */ // constants won't change const int ENA_PIN = 9; // the Arduino pin connected to the EN1 pin L298N const int IN1_PIN = 6; // the Arduino pin connected to the IN1 pin L298N const int IN2_PIN = 5; // the Arduino pin 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 du module L298N.
  • Copiez le code ci-dessus et ouvrez-le avec Arduino IDE.
  • Cliquez sur le bouton Upload de l'Arduino IDE pour télécharger le code sur 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é continuellement.

Vidéo

Références de fonction

※ 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!