How To Control a Track Linear Actuator with Arduino

Comment contrôler un actionneur linéaire avec Arduino

Adam Morissette
Adam Morissette
PA Engineer

L' actionneur linéaire à rail PA-18 est notre plus grand actionneur à longueur fixe et est couramment utilisé dans l'ébénisterie sur mesure, la domotique et la robotique. Vous pouvez facilement contrôler un actionneur avec une carte Arduino ; cet article vous montrera comment construire et programmer un actionneur linéaire contrôlé par Arduino, facilement adaptable à votre application !

 

Matériel requis

Les éléments matériels suivants sont nécessaires pour un actionneur linéaire contrôlé par Arduino, qui peuvent tous être achetés auprès de Progressive Automations :

 

Câblage du système

L'actionneur utilisé dans cette configuration nécessite une tension d'entrée de 12 VCC et un courant allant jusqu'à 8 A à pleine charge. Ces valeurs sont bien supérieures à celles d'un microcontrôleur Arduino et provoqueront une fumée « magique » s'échappant de l'Arduino. Pour éviter d'endommager l'Arduino, le pont en H MegaMoto Plus est utilisé. Ce pont en H, capable de gérer les besoins en énergie, permet de contrôler facilement un actionneur avec un Arduino.

Pour ce système, des connexions relient l'Arduino au pont en H du MegaMoto Plus et aux deux boutons-poussoirs. Chaque bouton-poussoir nécessite une entrée unique, choisie parmi les broches GPIO disponibles de l'Arduino. Le pont en H possède quatre connexions à l'Arduino : trois sorties et une entrée. Les broches utilisées par le pont en H sont prédéfinies et ne peuvent pas être modifiées.

 

Schéma fonctionnel

Le schéma ci-dessous explique brièvement les besoins en alimentation et les connexions. L'Arduino fonctionne sur une alimentation de 5 V et le pont en H sur 12 V. Si vous utilisez deux alimentations distinctes, il est important que leurs masses soient partagées afin d'éviter un problème de masse flottante.

Schéma fonctionnel

Commandes Arduino

Vous devrez installer l'IDE Arduino sur un ordinateur de bureau ou portable. Gardez à l'esprit que le câblage de votre système aura une incidence sur votre code Arduino. Il est donc important de vérifier vos connexions et de les comparer au code que vous avez saisi.

La commande Arduino pinMode permet de définir les broches comme entrées ou sorties. Pour modifier le signal envoyé par l'Arduino à une broche spécifique, les commandes digitalWrite et analogWrite sont utilisées. De plus, les commandes digitalRead et analogRead sont utilisées lorsque l'Arduino doit vérifier le signal sur une broche spécifique.

Dans le programme ci-dessous, la commande digitalWrite permet d'activer ou de désactiver le pont en H et de configurer les broches des boutons-poussoirs. La commande analogWrite permet de définir la valeur du signal PWM (de 0 à 255) envoyé au pont en H. La commande digitalRead permet de vérifier si les boutons-poussoirs ont été enfoncés ou relâchés. La commande analogRead permet de mesurer le courant absorbé par le moteur de l'actionneur, ce qui permet de vérifier si l'actionneur est en fin de course.

 

Code Arduino

La section suivante présente les définitions du programme, la configuration, la boucle principale et les fonctions des boutons-poussoirs d'un actionneur linéaire contrôlé par Arduino. Il est important de parcourir le code ligne par ligne pour comprendre son fonctionnement. Cette compréhension vous permettra d'effectuer des ajustements en fonction de votre application.

Définitions du programme

Cette section de code présente la configuration des connexions des broches. Vérifiez que vos connexions à la carte Arduino correspondent aux valeurs saisies. Ces valeurs peuvent être modifiées si vous connectez des composants supplémentaires à l'Arduino, ce qui peut nécessiter de déplacer les connexions des broches.

Code Arduino

Configuration du programme

Cette section de code configure les broches connectées en entrée ou en sortie. Les deux boutons peuvent être réglés sur HAUT ou BAS selon leur mode de connexion (pull-up ou pull-down). Bien que l'Arduino dispose de résistances de rappel internes, vous pouvez ajouter une résistance externe pour éviter les rebonds et les déclenchements intempestifs.

Code Arduino #2

Boucle principale

La boucle principale vérifie en permanence que les boutons ont été enfoncés et exécute une section de code spécifique en fonction du résultat de la fonction bouton-poussoir. Une section machine à états est incluse pour déterminer l'action de l'actionneur linéaire contrôlé par Arduino et sa réaction en fonction des entrées (c'est-à-dire les boutons-poussoirs).

Code Arduino n°3
Code Arduino n°4

Fonctions des boutons-poussoirs

Ces fonctions lisent numériquement l'état des boutons-poussoirs pour contrôler un actionneur via un Arduino. Chaque fonction de bouton-poussoir dispose d'une boucle anti-rebond dans l'instruction principale « if » pour éviter les ratés et l'envoi d'un signal erroné à l'Arduino. La sortie de ces fonctions est une valeur booléenne. Par exemple, si le bouton de démarrage est enfoncé, la valeur de « startButton » devient « true ». La valeur booléenne est ensuite utilisée dans la boucle principale pour prendre d'autres décisions.

Code Arduino n°5

Derniers mots

Les fonctionnalités de ce système vont au-delà de ce qui est présenté dans cet article. Le microcontrôleur Arduino et le pont en H MegaMoto Plus permettent de mettre en œuvre des routines de contrôle beaucoup plus complexes. Cette configuration permet de contrôler la vitesse variable grâce à la commande analogWrite pour définir le signal PWM. Le courant du moteur de l'actionneur peut être surveillé pour être utilisé comme capteur de charge afin de déclencher des commandes supplémentaires.

De plus, des capteurs supplémentaires peuvent être connectés pour un actionneur linéaire avancé contrôlé par Arduino. Par exemple, un capteur à ultrasons peut être connecté pour démarrer/arrêter le moteur à une certaine distance, ou pour déclencher une multitude d'autres fonctionnalités intéressantes. Les possibilités sont infinies. Cependant, si les broches de l'Arduino commencent à manquer, vous pouvez opter pour un autre modèle d'Arduino. Il est également possible de connecter plusieurs Arduinos en série pour communiquer entre eux et avec différents composants. Cependant, cette solution nécessite une bonne expérience en programmation.

Pour plus d'informations, veuillez nous envoyer un e-mail à sales@progressiveautomations.com ou appelez-nous au 1-800-676-6123.