Capteur d'effet de salle
Les capteurs d'effet de hall peuvent détecter la présence d'un champ magnétique et produire une tension de sortie lorsqu'une est détectée. Capteurs d'effet de salle, lorsqu'il est utilisé avecactionneurs linéaires, sont généralement positionnés à l'intérieur de la boîte de vitesses de l'actionneur avec un disque magnétique. Au fur et à mesure que l'actionneur linéaire s'étend ou se rétracte, ce disque tourne le capteur d'effet de la salle qui fait que le capteur produit une sortie numérique sous la forme d'une impulsion de tension. Ces impulsions peuvent être comptées et utilisées pour déterminer jusqu'où l'actionneur a déplacé.
Rétroaction positionnelle d'un capteur d'effet de salle
Un inconvénient de l'utilisation d'un capteur d'effet de salle pour la rétroaction de positionnt est qu'ils ne mesurent pas une position absolue. Au lieu de cela, ils produisent des impulsions qui peuvent être comptées pour déterminer jusqu'où l'actionneur a déplacé. Pour utiliser ces impulsions pour une rétroaction de position, vous devrez utiliser un micro-contrôleur pour compter les impulsions produites. Pour ce faire, vous devrez utiliser les broches d'interruption externes de votre micro-contrôleur pour compter ces impulsions au fur et à mesure. Les interruptions externes sont des épingles qui détectent un changement de tension et dans notre cas peuvent être utilisées pour détecter l'impulsion de tension du capteur d'effet du hall. Vous devrez consulter la fiche technique de votre micro-contrôleur pour vous assurer quelles broches de votre micro-contrôleur peuvent être utilisées comme broches d'interruption. En utilisant un Arduino Uno Par exemple, les broches 2 et 3 peuvent être utilisées pour des interruptions externes. Une fois que vous avez sélectionné une broche d'interruption appropriée, vous pouvez connecter le fil de la sortie du capteur d'effet de salle à cette broche ainsi que connecter la tension d'entrée à 5V et la terre à une broche de terre.
L'exemple de code ci-dessous montre comment configurer une interruption dans l'ide Arduino où l'interruption sera déclenchée sur le bord montant de l'impulsion de tension. Vous pouvez configurer votre interruption pour être déclenché à différents points dans un changement de tension et devrait consulter la fiche technique de votre micro-contrôleur pour déterminer les options disponibles. Le dernier aspect que vous devez faire pour configurer votre interruption est d'écrire votre routine de service d'interruption, qui est la fonction que le code s'exécutera chaque fois que l'interruption est déclenchée. Cette fonction doit être courte et effectuer uniquement des tâches simples comme le comptage du nombre d'impulsions de notre capteur d'effet Hall. La fonction CountSteps () dans l'exemple de code ci-dessous est utilisée pour compter le nombre d'impulsions du capteur d'effet de hall.
Pour utiliser ces impulsions pour déterminer une valeur de position, vous devrez connaître la position précédente de l'actionneur linéaire et la direction dans laquelle l'actionneur linéaire voyage. Vous pouvez donc simplement configurer une variable pour suivre la direction de l'actionneur dans votre code qui sera utilisé pour déterminer si vous ajoutez ou soustrayez les impulsions de votre position précédente. Une fois que vous avez mis à jour votre position, vous devrez réinitialiser les impulsions comptées à zéro. L'exemple de code ci-dessous vous montre une fonction qui met à jour la position en fonction du nombre d'impulsions comptées. Une fois que vous avez une position en termes d'impulsions, vous pouvez convertir en pouces en utilisant la spécification d'impulsion par pouce de votre actionneur linéaire. Dans l'échantillon de code ci-dessous, le voyage d'impulsion par pouce est de 3500.
Horming votre actionneur linéaire
Pour utiliser avec précision les commentaires de position d'un capteur d'effet de salle, vous devez toujours connaître la position de départ de votre actionneur linéaire. Bien que lorsque vous allumez votre système pour la première fois, votre micro-contrôleur ne pourra pas dire si l'actionneur est prolongé ou non. Cela vous obligera à chez vous à la maison votre actionneur linéaire à une position connue. Pour chez vous votre actionneur linéaire, vous devrez le conduire à une position connue, comme complètement rétractée. Vous pouvez également utiliser interrupteurs de limites externes Pour définir votre position connue sur ailleurs autrement étendue ou rétractée. En utilisant le code Arduino ci-dessous comme exemple, nous voulons configurer une boucle de temps qui conduira notre actionneur linéaire vers votre position connue, dans ce cas entièrement rétractée. Nous savons que vous êtes dans notre position connue parce que l'interruption du capteur de l'effet Hall ne se déclenchera pas. Dans ce cas, nous vérifions si la variable des étapes a changé ou non pour déterminer si l'interruption a été déclenchée. Nous devons également nous assurer que suffisamment de temps s'est écoulé pour s'attendre à ce que l'interruption soit déclenchée, car nous utilisons la fonction Millis () qui étend le temps en millisecondes depuis le début du code et nous le comparons à l'horodatage précédent . Une fois que nous avons déterminé que l'actionneur linéaire est à notre position à domicile, nous cessons de conduire l'actionneur, réinitialisons la variable des étapes et sortons de la boucle while.
Faire face à de faux déclencheurs
Bien que les capteurs d'effet Hall ne soient pas aussi sensibles au bruit électrique qu'un potentiomètre, le bruit électrique pourrait toujours avoir un impact sur le signal de sortie. Le rebond de commutation peut également être un problème avec les capteurs d'effet de hall qui peuvent déclencher de fausses impulsions à compter, ce qui affecterait jusqu'au chemin de votre micro-contrôleur pense que votre actionneur linéaire a déplacé. Quelques impulsions supplémentaires n'affecteront pas beaucoup le positionnement car il y a des milliers d'impulsions par pouce, mais au fil du temps, ce peut être un problème plus important. Vous pouvez combattre ces problèmes en utilisant un minuteur interne pour filtrer les faux déclencheurs. Comme vous pouvez déterminer la fréquence à laquelle vous vous attendez à ce que de nouvelles impulsions soient détectées, vous pouvez filtrer lorsque l'interruption a été déclenchée par le bruit. Dans l'échantillon de code ci-dessous, Trig-Delay est le délai entre chaque impulsion. Si l'interruption a été déclenchée avant ce retard, le pouls ne sera pas compté.
La durée de ce retard variera en fonction de votre application, mais si elle est trop courte, elle ne filtrera pas correctement le bruit et s'il est trop long, il manquera les impulsions réelles de l'actionneur linéaire. La vitesse de l'actionneur linéaire aura également un impact sur ce retard et si vous souhaitez ajuster la vitesse, cette variable peut devoir changer pour s'adapter à la nouvelle fréquence des impulsions attendues. Pour déterminer avec précision un délai exact entre chaque impulsion, vous pouvez utiliser un analyseur logique pour visualiser le signal réel du capteur de l'effet Hall. Bien que cela ne soit pas nécessaire dans la plupart des applications, si vous avez besoin d'un positionnement très exact, vous voudrez peut-être déterminer un retard précis.
Une autre façon de lutter contre les fausses déclencheurs est de corriger la valeur positionnelle chaque fois que l'actionneur atteint une position connue. Comme le rythme de l'actionneur linéaire, si vous avez conduit l'actionneur linéaire à une position entièrement rétractée ou étendue ou si vous utilisez interrupteurs de limites externes, vous saurez jusqu'où l'actionneur a déménagé. Comme vous savez combien d'étapes le capteur de l'effet Hall doit envoyé pour atteindre votre position connue, vous pouvez simplement corriger la valeur lorsque nous l'atteinons. Dans l'échantillon de code ci-dessous, cela est fait pour les positions entièrement étendues et entièrement rétractées. Comme l'actionneur ne bougera pas une fois qu'il atteint l'une de ces positions, si nous essayons de conduire l'actionneur et que la valeur de position ne change pas, nous savons que nous sommes à la limite. Cette méthode fournit une solution pratique pour vous assurer que votre valeur de position reste précise, surtout si vous rétractez ou étendez pleinement votre actionneur à un moment donné pendant le fonctionnement. Vous pouvez utiliser cette méthode conjointement avec la méthode décrite ci-dessus qui devrait aider à maintenir la précision de votre valeur de position.
Résumé
L'utilisation d'un capteur d'effet de salle pour la rétroaction positionnelle offre une résolution beaucoup plus grande par rapport à la rétroaction d'un potentiomètre. Comme il peut y avoir des milliers d'impulsions par pouce de mouvement, les capteurs d'effet de hall offrent une précision et une fiabilité dans le positionnement de votre actionneur linéaire. Les capteurs d'effet Hall offrent également une plus grande capacité à garantir que plusieurs actionneurs linéaires se déplacent simultanément car le nombre d'impulsions est plus précis que la tension changeante du potentiomètre. En utilisant notre Fa-sync-x Contrôleur de l'actionneur, vous pouvez même vous assurer que les actionneurs se déplacent à l'unisson, quelle que soit la charge. Pour les diyers, vous pouvez vérifier comment vous assurer que vos actionneurs se déplacent à l'unisson à l'aide d'un arduino ici.
Ci-dessous, l'exemple de code complet utilisé dans ce blog et a été conçu pour contrôler une longueur de course de 14 pouces Série de balles 36 Cal. Actionneur linéaire. L'actionneur linéaire est entraîné en utilisant un moteur, que vous pouvez apprendre à configurer ici.
[1] Monari, G. (juin 2013) Comprendre la résolution dans les encodeurs optiques et magnétiques. Récupéré de: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders