Blog posts How an Arduino or Raspberry Pi Communicates with our Hall effect actuator: the PA-04-HS

Comment un Arduino ou un Raspberry Pi communique avec notre actionneur à effet Hall : le PA-04-HS

Guest Writer
Guest Writer
PA Engineer

Bienvenue dans un autre article technique de Progressive Automations ! Aujourd’hui, nous allons expliquer comment un Arduino peut communiquer avec notre PA-04-HS.

Un capteur à effet Hall est un composant électronique qui permet un contrôle précis d’un vérin linéaire. Il est généralement placé à l’intérieur du réducteur, à côté d’un disque magnétique. Lorsque le vérin linéaire se déplace, le disque magnétique tourne et crée un champ magnétique qui traverse le capteur à effet Hall. Cela génère une impulsion de tension, que l’on peut compter pour déterminer la position, la vitesse ou la direction du vérin linéaire. Cependant, pour exploiter ces signaux, il faut utiliser un microcontrôleur tel qu’un Arduino ou un Raspberry Pi. Dans cet article, nous verrons l’utilisation d’un actionneur avec un Raspberry Pi et comment contrôler un vérin linéaire avec Arduino. Comme mentionné, ces deux microcontrôleurs seront présentés avec un PA-04-HS Vérin linéaire à effet Hall de Progressive Automations.

Le PA-04-HS est livré avec une rétroaction à effet Hall intégrée !

Calculs de position, vitesse et direction

Avant d’entrer dans les détails, il faut d’abord comprendre comment les signaux issus du capteur à effet Hall sont utilisés pour calculer la position, la vitesse et la direction du vérin linéaire. Dans le PA-04-HS, le capteur à effet Hall est conçu pour produire deux signaux dans l’un des deux états binaires : activé ou désactivé. Ces deux signaux montent et descendent à mesure que le moteur électrique tourne, avec un déphasage de 90 degrés entre eux. Ne vous inquiétez pas si vous ne savez pas encore comment implémenter cela dans un code lisible par un microcontrôleur, nous vous le fournirons plus loin dans cet article.

Position

La position du vérin linéaire nécessite quelques calculs à partir des signaux à effet Hall et de certaines mesures du vérin lui‑même. L’équation de la position de la tige du vérin nécessite la longueur de course de l’actionneur, ainsi que le nombre total de fronts détectés entre la position complètement rentrée et complètement sortie. À partir de ces mesures, on peut utiliser l’équation suivante :

Equation 1

 

Dans l’équation ci‑dessus, les fronts détectés depuis la position complètement rentrée commencent à zéro et augmentent de un lorsqu’un front est détecté en direction avant, et diminuent de un lorsqu’un front est détecté en direction arrière.

 

Vitesse

La vitesse d’un vérin peut être mesurée à l’aide des signaux à effet Hall en implémentant un temporisateur dans le programme. Ce temporisateur sert à mesurer le temps entre les fronts détectés. De plus, la valeur calculée de la variation de course par front détecté est nécessaire. Avec ces valeurs, on peut utiliser l’équation suivante :

Equation 2

 

Direction

La direction du mouvement d’un vérin peut être déterminée en observant l’état actuel des deux signaux (signal A et B) et en le comparant au dernier état des deux signaux. En effet, selon le sens de déplacement du vérin, les deux signaux inversent lequel est en avance et lequel est en retard.

Schéma de l’état des deux signaux (signal A et B)

 

Tableau de l’état des deux signaux (signal A et B)

 

Quel est le meilleur, un Arduino ou un Raspberry Pi ?

La question n’est pas de savoir lequel est généralement meilleur, mais lequel convient le mieux à votre application. Il sera préférable de choisir un Arduino si la tâche principale de votre application est de lire les données du capteur à effet Hall et d’exécuter un ensemble précis d’instructions.

À l’inverse, le Raspberry Pi sera plus pratique pour des tâches habituellement effectuées sur un ordinateur personnel. De plus, le Raspberry Pi simplifie la gestion des flux de travail dans divers scénarios, comme la connexion à Internet ou le contrôle d’un vérin linéaire via un appareil mobile.

Il peut être judicieux d’utiliser les deux microcontrôleurs pour des tâches différentes. Le Raspberry Pi peut accéder au code et ajuster divers paramètres qui seront ensuite envoyés à un Arduino pour contrôler le vérin linéaire en fonction des informations qu’il recueille.

Entrons dans les détails et voyons comment contrôler un vérin linéaire avec Arduino.

 

Arduino avec vérins linéaires

Arduino Uno Rev3

 

Toujours selon votre application, vous pouvez choisir entre une méthode de scrutation ou une interruption avec un microcontrôleur lorsqu’il s’agit de signaux numériques. La scrutation est une méthode programmée dans laquelle un microcontrôleur vérifie périodiquement l’état d’une entrée pour voir s’il y a eu un changement. Les interruptions sont un mécanisme matériel qui déplace immédiatement le focus du programme du microcontrôleur lorsqu’un changement d’état survient sur une entrée.

À des fins de démonstration, nous opterons pour la méthode par interruption afin de connaître l’instant exact où un signal change d’état. Sur un microcontrôleur Arduino, on utilise une interruption en créant une Routine de service d’interruption (ISP).

Voici ce dont vous aurez besoin :

 

Câblage des composants Arduino et du shield

Les capteurs à effet Hall ont 4 fils : 5V, GND et 2 fils de signal. Chaque fil de signal délivre des impulsions à mesure que le moteur tourne. Il y a également deux fils du vérin à connecter au MegaMoto. Nous n’utiliserons qu’un seul des signaux à effet Hall.

Connectez le vérin linéaire à l’Arduino et au MegaMoto comme suit :

  • Fil du capteur rouge vers la broche 5V de l’Arduino.
  • Fil du capteur noir vers la broche GND de l’Arduino.
  • Fil jaune/orange vers la broche 2 ou 3 de l’Arduino (si vous utilisez un autre Arduino, assurez‑vous que ces broches gèrent les interruptions).
  • Fil du vérin rouge vers MOTA du MegaMoto.
  • Fil du vérin noir vers MOTB du MegaMoto.

Une fois les moteurs correctement câblés sur les cartes, câblez l’alimentation comme suit :

  • Connectez 12V à BAT+.
  • Connectez GND à BAT-.
  • Connectez 12V à Vin sur l’Arduino.
  • Câblez deux boutons entre les broches 7 et 8 de l’Arduino et reliez‑les au GND.

Il existe 4 types de déclencheurs pour l’interruption : Front montant, Front descendant, Haut et Bas. En changeant le déclencheur, vous pouvez ajuster le moment où l’interruption se produit. Front montant : lorsque la broche voit une transition de bas à haut ; Front descendant : de haut à bas ; Bas : lorsque la broche est à l’état bas ; Haut : lorsque la broche est à l’état haut.

Pour le code Arduino complet, consultez notre guide ici : Code Arduino pour vérin linéaire à effet Hall

Le code déplacera le vérin vers l’avant ou vers l’arrière d’un montant défini lorsque vous appuierez sur les boutons des broches 7 ou 8 (niveau actif BAS). Il inclut également une routine de référencement. C’est important, car si vous faites fonctionner le moteur d’avant en arrière pendant longtemps, vous pouvez perdre des comptes ici ou là et finir par ne plus savoir précisément où vous en êtes. La routine de référencement ramène le vérin linéaire à une position connue afin que le compteur puisse se réinitialiser.

 

Actionneur avec Raspberry Pi

Alors, comment connecter un actionneur à un Raspberry Pi 2, 4 ou un modèle plus récent ? Contrôler un vérin linéaire avec un Raspberry Pi est simple et peut se faire via Internet, ce qui permet un contrôle sans fil. Suivez les étapes de ce guide pour voir exactement comment faire : Commande d’un vérin linéaire avec Raspberry Pi.

Le Raspberry Pi 4 est utilisé pour exécuter le logiciel serveur et recevoir les commandes de contrôle du vérin linéaire. Toutefois, ce guide n’utilise pas de capteur à effet Hall. Pour cela, une carte Arduino peut être connectée au vérin linéaire et au Raspberry Pi afin d’envoyer/recevoir des données sans fil. Bien que le Raspberry Pi puisse également être utilisé directement pour lire des données de capteurs, à l’instar de l’Arduino, cela peut être excessif si vous ne contrôlez que quelques vérins linéaires.

 

Contrôler plusieurs vérins linéaires

Vérin à capteur à effet Hall IP66 – Modèle : PA-04-HS

 

Si vous devez contrôler plusieurs vérins linéaires avec un Raspberry Pi ou un Arduino, vous aurez besoin de quelques composants supplémentaires et le code devra être adapté. Deux vérins linéaires ou plus peuvent être synchronisés en suivant les comptages du capteur à effet Hall et, si les comptages des vérins s’écartent trop, chaque vérin ralentira pour égaliser les positions.

Consultez l’ensemble des instructions ici : Contrôler plusieurs vérins linéaires avec un microcontrôleur

Sinon, si la synchronisation ne fait pas partie de votre application, utilisez simplement un Arduino pour un ou deux vérins, selon le nombre de broches d’interruption disponibles. Pour contrôler davantage de vérins, vous pouvez soit utiliser plus de cartes Arduino, soit vous procurer un shield Arduino avec davantage de broches d’interruption.

Parcourez notre gamme de microcontrôleurs pour un contrôle ultime des actionneurs !

Conclusion

Si vous êtes prêt à relever le défi, il existe d’autres méthodes à essayer avec un Arduino et des vérins linéaires pour contrôler le mouvement, comme l’utilisation d’un code PID astucieux, à découvrir ici : Contrôle PID de vérin linéaire. Un capteur à effet Hall intégré dans un vérin linéaire, tel que le PA-04-HS, offre un niveau de contrôle supplémentaire qui peut être facilement mis en place avec l’aide d’un Arduino ou d’un Raspberry Pi. Que votre application nécessite uniquement la lecture de données de capteurs ou que vous souhaitiez faire passer votre vérin linéaire au niveau supérieur en le mettant en ligne, un capteur à effet Hall combiné au microcontrôleur de votre choix est la voie à suivre.

Si vous avez des questions concernant le contenu de cet article ou souhaitez simplement discuter de solutions produits possibles, veuillez nous contacter et nous serons ravis de vous aider !