Comment lire les commentaires d'un capteur optique

Capteur optique

Capteurs optiques, lorsqu'ils sont utilisés avec actionneurs linéaires,fonction très similaire à capteurs d'effet de salle, sauf qu'ils détectent la lumière au lieu des champs magnétiques [1]. Les capteurs optiques fonctionnent en utilisant la lumière à partir d'une LED ou d'une autre source lumineuse qui est passée à travers un disque d'encodeur. Ce disque d'encodeur est fendu pour permettre à la lumière de le traverser périodiquement. De l'autre côté du disque se trouve un photodétecteur, qui détecte la lumière lorsqu'il passe à travers les fentes du disque et crée un signal de sortie [1]. Au fur et à mesure que l'actionneur se déplace, le disque de codeur tourne et que la lumière est détectée par le photodétecteur qui produit une onde carrée d'impulsions de tension. Ces impulsions peuvent être utilisées de manière similaire aux impulsions d'un capteur d'effet Hall pour déterminer jusqu'où l'actionneur a déplacé.

Capteur optique

Rétroaction positionnelle d'un capteur optique

Comme les capteurs optiques fonctionnent assez similaires aux capteurs d'effet Hall en termes de sortie, cet article de blog couvrira brièvement comment lire leur sortie pour la rétroaction de position. Si vous recherchez plus de détails, consultez notre article sur la façon de lire les commentaires de position d'un capteur d'effet Hall, car il sera similaire.

Comme les capteurs d'effet Hall, les capteurs optiques auront 3 broches à connecter; L'un est la tension d'entrée, une autre est la terre, et enfin, l'une est le signal de sortie. Pour utiliser les impulsions sur le signal de sortie pour la rétroaction de position microcontrôleur pour compter les impulsions produites. Vous voudrez utiliser les broches d'interruption externes de votre microcontrôleur pour compter avec précision ces impulsions. Comme les interruptions externes sont déclenchées par un changement de tension, ils peuvent être utilisés pour détecter chaque impulsion lorsqu'ils se produisent. Une fois que vous avez configuré votre interruption dans le code de votre microcontrôleur, vous devrez configurer une routine de service d'interruption qui compte les impulsions lorsqu'elles se produisent. La fonction CountSteps () dans l'exemple de code ci-dessous est utilisée pour compter le nombre d'impulsions du capteur optique.

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 se déplace. Au fur et à mesure que vous contrôlez de la façon dont votre actionneur linéaire se déplace, vous pouvez simplement configurer une variable Pour suivre la direction de l'actionneur dans votre code. Cette variable peut être utilisée pour déterminer si vous devez ajouter ou soustraire 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.

Horming votre actionneur linéaire

Pour utiliser avec précision les commentaires de position d'un capteur optique, 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 microcontrôleur ne pourra pas dire si l'actionneur est prolongé ou non. Cela vous obligera à chez vous à la maison votre actionneur linéaire dans une position connue. À la maison votre actionneur linéaire, vous devrez le conduire vers une position connue, comme complètement rétracté. En utilisant le code Arduino ci-dessous comme exemple, nous avons configuré une boucle de temps qui entraînera notre actionneur linéaire vers notre position connue. Dans cet exemple, nous saurons que nous sommes dans notre position connue en vérifiant si l'interruption a été déclenchée ou non en vérifiant si la variable des étapes a changé. 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 () et la comparez à 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 optiques ne soient pas aussi sensibles au bruit électrique que les potentiomètres, le bruit électrique et le rebond de commutation peuvent toujours avoir un impact sur le signal de sortie et peuvent déclencher de fausses impulsions à compter. Quelques impulsions supplémentaires n’affecteront pas beaucoup le positionnement, mais avec le temps, cela 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, Trigdelay 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 du capteur optique.

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 prolongée ou si vous utilisez des commutateurs de fin de fin de compte, vous saurez combien d'impulsions nécessaires pour atteindre cette position. Vous pouvez ensuite corriger la valeur positionnelle en utilisant cette valeur lorsque vous atteignez cette position connue. Dans l'échantillon de code ci-dessous, cela est fait pour les positions entièrement étendues et entièrement rétractées. Cette méthode fournit une solution pratique pour vous assurer que votre valeur de position reste précise.

Résumé

Les capteurs optiques utilisés pour la rétroaction positionnelle offrent une plus grande précision et résolution par rapport aux capteurs d'effet de hall et aux potentiomètres, tout en ayant des forces et des inconvénients similaires aux capteurs à effet de hall. Bien qu'ils ne mesurent pas la position absolue et ne nécessitent pas une position de départ connue pour fournir une valeur positionnelle, le grand nombre d'impulsions par pouce permet de fiabilité de positionnement et d'assurer que plusieurs actionneurs linéaires se déplacent simultanément. En utilisant notre Fa-sync-x contrôleur d'actionneur ou par code supplémentaire, vous pouvez même vous assurer que les actionneurs se déplacent à l'unisson, quelle que soit la charge.

Pour un exemple de code complet, consultez notre blog sur Comment lire les commentaires positionnels d'un capteur d'effet de salle autant seront similaires. Des valeurs comme l'impulsion par pouce et les retards entre les impulsions sont quelques-unes des modifications que vous devrez apporter pour utiliser ce code pour utiliser avec précision votre capteur optique.

 

[1] Paschotta, R. Article sur les capteurs optiques. Récupéré de:https://www.rp-photonics.com/optical_sensors.html

Share This Article
Tags: