How To Control a Track Linear Actuator with Arduino

Comment contrôler un vérin linéaire à rail avec Arduino

Adam Morissette
Adam Morissette
PA Engineer

Le vérin linéaire à rail PA-18 est notre actionneur à longueur fixe le plus grand, couramment utilisé dans les meubles sur mesure, la domotique et la robotique. Vous pouvez facilement contrôler un actionneur avec une carte Arduino, et cet article vous montrera comment construire et programmer un vérin linéaire piloté par Arduino, facilement adaptable à votre application !

 

Matériel requis

Les éléments matériels suivants sont nécessaires pour un vérin linéaire piloté par Arduino, tous disponibles chez Progressive Automations :

 

Câblage du système

L’actionneur utilisé dans ce montage nécessite une tension d’entrée de 12 VCC et jusqu’à 8 A de courant à pleine charge. Ces valeurs sont bien supérieures à ce qu’un microcontrôleur Arduino peut fournir et feront sortir de la « fumée magique » de l’Arduino. Pour éviter d’endommager l’Arduino, on utilise le pont en H MegaMoto Plus. Le pont en H peut répondre aux exigences de puissance et peut facilement être utilisé pour contrôler un actionneur avec un Arduino.  

Pour ce système, des connexions relient l’Arduino au pont en H MegaMoto Plus ainsi qu’aux deux boutons-poussoirs. Chaque bouton-poussoir nécessite une seule entrée, choisie parmi les broches GPIO disponibles de l’Arduino. Le pont en H comporte quatre connexions vers 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-blocs

Le schéma-blocs ci-dessous présente brièvement les exigences d’alimentation et les connexions. L’Arduino fonctionne sous 5 V et le pont en H sous 12 V. Si vous utilisez deux alimentations séparées, il est important de relier leurs masses pour éviter un scénario de masse flottante.

 

Schéma-blocs

 

Commandes Arduino

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

La commande Arduino pinMode est utilisée pour définir les broches en entrées ou en sorties. Pour changer le signal que l’Arduino envoie à une broche spécifique, on utilise les commandes digitalWrite et analogWrite. 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 est utilisée pour activer ou désactiver le pont en H, et pour configurer les broches utilisées par les boutons-poussoirs. La commande analogWrite sert à définir la valeur du signal PWM dans la plage de 0 à 255 pour le pont en H. La commande digitalRead permet de vérifier si les boutons-poussoirs ont été pressés ou relâchés. La commande analogRead est utilisée pour mesurer la consommation de courant du moteur de l’actionneur, ce qui permet de vérifier quand l’actionneur est en fin de course.

 

Code Arduino

La section suivante passe en revue les définitions du programme, l’initialisation, la boucle principale et les fonctions des boutons-poussoirs pour un vérin linéaire piloté par Arduino. Il est important d’examiner le code ligne par ligne pour comprendre son fonctionnement. Cette compréhension vous permettra d’apporter des ajustements en fonction de votre application.

Définitions du programme

Cette section du code correspond à la configuration des connexions des broches. Vérifiez que vos connexions à la carte Arduino correspondent aux numéros saisis. Ces valeurs peuvent être modifiées si vous ajoutez des composants à l’Arduino, ce qui peut nécessiter de réorganiser les connexions des broches.

Code Arduino

Configuration du programme

Cette section du code configure les broches connectées en entrée ou en sortie. Les deux boutons peuvent être configurés sur HIGH ou LOW selon la manière dont vous les avez câblés (pull-up ou pull-down). Bien que l’Arduino dispose de résistances de tirage internes, vous pouvez ajouter une résistance externe pour l’anti-rebond des interrupteurs et éviter les faux déclenchements.

Code Arduino #2

Boucle principale

La boucle principale vérifie en permanence si les boutons ont été pressés et exécute une section particulière du code selon le résultat de la fonction des boutons-poussoirs. Une section de machine à états est incluse pour déterminer ce que fait le vérin linéaire contrôlé par Arduino et comment il doit réagir en fonction des entrées (c.-à-d. les boutons-poussoirs).

Code Arduino #3
Code Arduino #4

 

Fonctions des boutons-poussoirs

Ces fonctions lisent numériquement l’état des boutons-poussoirs pour contrôler un actionneur à l’aide d’un Arduino. Chaque fonction de bouton-poussoir possède une boucle d’anti-rebond dans la condition if principale afin d’éviter les ratés et l’envoi d’un mauvais signal à l’Arduino. La sortie de ces fonctions est une valeur booléenne. Par exemple, si le bouton de démarrage est pressé, la valeur de startButton passe à true. La valeur booléenne est ensuite utilisée dans la boucle principale pour prendre d’autres décisions.   

Code Arduino #5

 

Dernières remarques

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 peuvent être utilisés pour implémenter des routines de contrôle bien plus complexes. Ce montage permet un contrôle de vitesse variable en utilisant la commande analogWrite pour définir le signal PWM. Le courant du moteur de l’actionneur peut être surveillé pour la détection de charge afin de déclencher des commandes supplémentaires.

En outre, des capteurs supplémentaires peuvent être ajoutés pour un vérin linéaire Arduino avancé. Par exemple, on peut connecter un capteur à ultrasons pour démarrer/arrêter le moteur lorsque vous vous trouvez à une certaine distance, ou l’utiliser pour déclencher toute une série d’autres fonctionnalités intéressantes. Les possibilités sont infinies. Toutefois, si les broches viennent à manquer sur l’Arduino, vous pouvez opter pour un autre modèle d’Arduino. Alternativement, plusieurs Arduino peuvent être chaînés pour communiquer entre eux et avec divers composants. Ce choix demandera cependant une solide expérience en programmation.

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