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 sur un autre blog 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 permettant le contrôle précis d'un actionneur linéaire . Il est généralement placé dans le réducteur, à côté d'un disque magnétique. Lorsque l'actionneur linéaire se déplace, le disque magnétique tourne, créant un champ magnétique qui traverse le capteur à effet Hall. Cela crée une impulsion de tension, qui peut être comptée pour déterminer la position, la vitesse ou la direction de l'actionneur linéaire. Cependant, pour exploiter ces signaux, un microcontrôleur tel qu'un Arduino ou un Raspberry Pi est nécessaire. Dans cet article, nous allons explorer l'utilisation d'un actionneur pour Raspberry Pi et comment le contrôler avec Arduino. Comme mentionné précédemment, ces deux microcontrôleurs seront présentés avec un actionneur linéaire à effet Hall Progressive Automations PA-04-HS .

Le PA-04-HS est doté d'un effet Hall intégré !

Calculs de position, de vitesse et de direction

Avant d'entrer dans les détails, il est essentiel de comprendre comment les signaux du capteur à effet Hall sont utilisés pour calculer la position, la vitesse et la direction de l'actionneur linéaire. Dans le PA-04-HS , le capteur à effet Hall est conçu pour produire deux signaux dans deux états binaires : marche ou arrêt. Ces deux signaux augmentent et diminuent au fur et à mesure de la rotation du moteur électrique, avec un déphasage de 90 degrés entre eux. Ne vous inquiétez pas si vous ne savez pas comment implémenter tout cela dans un code lisible par un microcontrôleur ; nous vous expliquerons cela plus loin dans cet article.

Position

La position de l'actionneur linéaire nécessite des calculs utilisant les signaux à effet Hall et des mesures de l'actionneur lui-même. L'équation de la position de la tige de l'actionneur nécessite la longueur de course de l' actionneur et le nombre total de bords détectés, de la position complètement rétractée à la position complètement déployée. À partir de ces mesures, l'équation suivante peut être utilisée :

Équation 1

Les bords détectés depuis qu'ils sont complètement rétractés dans l'équation ci-dessus commenceront à zéro et augmenteront d'un lorsqu'un bord est détecté dans la direction avant et diminueront d'un lorsqu'un bord est détecté dans la direction arrière.

Vitesse

La vitesse d'un actionneur peut être mesurée à l'aide des signaux à effet Hall en intégrant un temporisateur au programme. Ce temporisateur mesurera 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. À partir de ces valeurs, l'équation suivante peut être utilisée :

Équation 2

Direction

Le sens de déplacement d'un actionneur peut être déterminé en comparant l'état actuel des deux signaux (signaux A et B) à leur dernier état. En effet, les deux signaux changent, l'un en avance, l'autre en retard, selon le sens de déplacement de l'actionneur.

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 microcontrôleur Arduino ou Raspberry Pi ?

Il ne s'agit pas de savoir lequel est le meilleur en général, mais plutôt lequel est le plus adapté à l'application envisagée. Il est 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 de renvoyer un ensemble d'instructions spécifique.

En revanche, le Raspberry Pi serait plus pratique pour réaliser des tâches qui seraient effectuées sur un ordinateur personnel. De plus, il simplifie la gestion des flux de travail dans divers scénarios, comme la connexion à Internet ou le contrôle d'un actionneur linéaire via un appareil mobile.

Il peut être pratique d'utiliser les deux microcontrôleurs pour résoudre différentes tâches. Le Raspberry Pi pourrait accéder au code et ajuster divers paramètres, qui pourraient ensuite être envoyés à un Arduino pour contrôler l'actionneur linéaire en fonction des informations collectées.

Plongeons dans les détails et montrons-vous comment contrôler un actionneur linéaire avec Arduino .

Arduino avec actionneurs linéaires

Arduino Uno Rev3

Selon votre application, vous pouvez choisir d'utiliser une méthode d'interrogation ou une interruption avec un microcontrôleur pour traiter des signaux numériques. L'interrogation est une méthode programmée par laquelle un microcontrôleur vérifie périodiquement l'état d'une entrée pour détecter tout changement. Les interruptions sont un mécanisme matériel qui modifie immédiatement le programme du microcontrôleur lorsque l'état d'une entrée change.

À des fins de démonstration, nous utiliserons la méthode d'interruption pour connaître le moment exact où un signal change d'état. Sur un microcontrôleur Arduino, une interruption est utilisée en créant une routine de maintenance d'interruption (ISP).

Voici ce dont vous aurez besoin :

 

Câblage des composants Arduino et Shield

Les capteurs à effet Hall comportent quatre fils : 5 V, GND et deux fils de signal. Chaque fil de signal fournit des impulsions lorsque le moteur tourne. Deux fils d'actionneur sont également connectés au MegaMoto. Nous n'utiliserons qu'un seul des signaux à effet Hall.

Connectez l'actionneur linéaire à l'Arduino et au MegaMoto comme suit :

  • Fil de capteur rouge vers la broche Arduino 5V.
  • Fil de capteur noir vers la broche GND de l'Arduino.
  • Fil jaune/orange vers la broche Arduino 2 ou 3 (si vous utilisez un autre Arduino, assurez-vous que les broches sont interrompues).
  • Fil d'actionneur rouge vers MOTA du MegaMoto.
  • Fil d'actionneur noir vers MOTB du MegaMoto.

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

  • Connectez 12V à BAT+.
  • Connectez GND à BAT-.
  • Connectez 12V à Vin sur l'Arduino.
  • Connectez deux boutons entre les broches 7 et 8 de l'Arduino et connectez-les à GND.

Il existe quatre types de déclencheurs d'interruption : montant, descendant, haut et bas. En modifiant le déclencheur, vous pouvez ajuster le moment où l'interruption se produit. Montant correspond à une transition de la broche de bas en haut, descendant à une transition de haut en bas, bas à un niveau bas et haut à un niveau haut.

Pour le code Arduino complet, visitez notre guide ici : Code Arduino de l'actionneur linéaire à effet Hall

Le code déplace l'actionneur vers l'avant ou vers l'arrière d'une valeur définie lorsque vous appuyez sur les boutons des broches 7 ou 8 (état BAS actif). Il inclut également une routine de retour à la position initiale. Ceci est important, car si vous faites fonctionner le moteur pendant de longs allers-retours, vous risquez de perdre le compte par intermittence et de perdre progressivement la trace de votre position. La routine de retour à la position initiale ramène l'actionneur linéaire à une position connue, permettant ainsi de réinitialiser le compteur.

 

Actionneur Raspberry Pi

Alors, comment connecter un actionneur à un Raspberry Pi 2, 4 ou un modèle plus récent ? Le contrôle d'un actionneur linéaire avec un Raspberry Pi est simple et peut se faire via Internet, permettant ainsi un contrôle sans fil. Suivez les étapes du guide suivant pour savoir comment procéder : Contrôle d'un actionneur linéaire Raspberry Pi .

Le Raspberry Pi 4 permet d'exécuter le logiciel serveur et de recevoir les commandes de contrôle de l'actionneur linéaire. Cependant, ce guide n'utilise pas de capteur à effet Hall. Pour ce faire, une carte Arduino peut être connectée à l'actionneur linéaire et au Raspberry Pi pour envoyer et recevoir des données sans fil. Bien que le Raspberry Pi puisse également être utilisé directement pour lire les données des capteurs, comme l'Arduino, cela peut s'avérer excessif si vous ne contrôlez que quelques actionneurs linéaires.

Contrôle de plusieurs actionneurs linéaires

Actionneur de capteur à effet Hall IP66 Modèle : PA-04-HS

Si vous devez contrôler plusieurs actionneurs linéaires avec un Raspberry Pi ou un Arduino, vous aurez besoin de quelques composants supplémentaires et d'un code à ajuster. Deux actionneurs linéaires ou plus peuvent être synchronisés en suivant le comptage des capteurs à effet Hall. Si les comptages des actionneurs linéaires s'écartent trop, chaque actionneur linéaire ralentira pour égaliser les positions.

Consultez l'ensemble des instructions ici : Contrôler plusieurs actionneurs linéaires avec un microcontrôleur

Si la synchronisation ne fait pas partie de votre application, utilisez simplement un Arduino pour un ou deux actionneurs, selon le nombre de broches d'interruption disponibles. Pour contrôler davantage d'actionneurs, vous pouvez utiliser davantage de cartes Arduino ou 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, d'autres méthodes vous permettent d'utiliser un Arduino avec des actionneurs linéaires pour contrôler le mouvement, comme l'utilisation d'un code PID astucieux, consultable ici : Contrôle PID d'actionneur linéaire . Un capteur à effet Hall intégré à un actionneur linéaire, comme le PA-04-HS , offre un niveau de contrôle supplémentaire facilement configurable à l'aide d'un Arduino ou d'un Raspberry Pi. Que votre application nécessite uniquement la lecture des données du capteur ou que vous souhaitiez améliorer votre actionneur linéaire en le mettant en ligne, un capteur à effet Hall, associé à un microcontrôleur de votre choix, est la solution idéale.

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