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 à effet Hall, sauf qu'ils détectent la lumière au lieu des champs magnétiques [1]. Les capteurs optiques fonctionnent en utilisant la lumière d'une LED ou d'une autre source de lumière qui passe à travers un disque encodeur. Ce disque 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'elle passe à travers les fentes du disque et crée un signal de sortie [1]. Lorsque l'actionneur se déplace, le disque codeur tourne et 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 la même manière que les impulsions d'un capteur à effet Hall pour déterminer la distance parcourue par l'actionneur.

Capteur optique

Retour de position d'un capteur optique

Comme les capteurs optiques fonctionnent de manière assez similaire aux capteurs à effet Hall en termes de sortie, cet article de blog expliquera brièvement comment lire leur sortie pour un retour de position. Si vous recherchez plus de détails, consultez notre article sur la façon de lire le retour de position d'un capteur à effet Hall, car il en sera de même.

Comme les capteurs à effet Hall, les capteurs optiques auront 3 broches auxquelles se connecter; l'un est la tension d'entrée, un autre est la masse et enfin, l'un est le signal de sortie. Pour utiliser les impulsions du signal de sortie pour le retour de position, vous devez utiliser un microcontrôleur pour compter les impulsions produites. Vous souhaiterez 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, elles peuvent être utilisées pour détecter chaque impulsion au fur et à mesure qu'elles 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 à mesure qu'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 devez connaître la position précédente de l'actionneur linéaire et la direction dans laquelle l'actionneur linéaire se déplace. Lorsque vous contrôlez la direction dans laquelle 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 remettre à zéro les impulsions comptées. 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.

Repérage de votre actionneur linéaire

Pour utiliser avec précision le retour 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 étendu ou non. Cela vous obligera à ramener votre actionneur linéaire à une position connue. Pour héberger votre actionneur linéaire, vous devrez le conduire dans une position connue, comme complètement rétracté. En utilisant le code Arduino ci-dessous comme exemple, nous avons mis en place une boucle WHILE qui conduira notre actionneur linéaire vers notre position connue. Dans cet exemple, nous saurons que nous sommes à notre position connue en vérifiant si l'interruption a été déclenchée ou non en vérifiant si la variable steps a changé. Nous devons également nous assurer que suffisamment de temps s'est écoulé pour attendre le déclenchement de l'interruption, pour cela, nous utilisons la fonction millis () et la comparons à l'horodatage précédent. Une fois que nous avons déterminé que l'actionneur linéaire est à notre position d'origine, nous arrêtons de piloter l'actionneur, réinitialisons la variable d'étapes et sortons de la boucle WHILE.

Traiter les faux déclencheurs

Alors que les capteurs optiques ne sont pas aussi sensibles au bruit électrique que les potentiomètres, le bruit électrique et le rebondissement des commutateurs 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 lutter contre ces problèmes en utilisant une minuterie 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 le moment où l'interruption a été déclenchée par du bruit. Dans l'exemple de code ci-dessous, trigDelay est le délai entre chaque impulsion. Si l'interruption a été déclenchée avant ce délai, l'impulsion ne sera pas comptée. La durée de ce délai variera en fonction de votre application, mais s'il est trop court, il 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 faux déclenchements est de corriger la valeur de position chaque fois que l'actionneur atteint une position connue. Comme pour la prise d'origine de l'actionneur linéaire, si vous avez conduit l'actionneur linéaire dans une position complètement rétractée ou étendue ou si vous utilisez des interrupteurs de fin de course externes, vous saurez combien d'impulsions il faut pour atteindre cette position. Vous pouvez alors simplement corriger la valeur de position en utilisant cette valeur lorsque vous atteignez cette position connue. Dans l'exemple de code ci-dessous, cela est fait pour les positions entièrement déployées et entièrement rétractées. Cette méthode fournit une solution pratique pour garantir que votre valeur positionnelle reste précise.

Sommaire

Les capteurs optiques utilisés pour la rétroaction de position offrent une précision et une résolution supérieures par rapport aux capteurs et potentiomètres à effet Hall, tout en ayant des avantages et des inconvénients similaires aux capteurs à effet Hall. Bien qu'ils ne mesurent pas la position absolue et nécessitent une position de départ connue pour fournir une valeur de position, le grand nombre d'impulsions par pouce permet une fiabilité du positionnement et garantit le déplacement simultané de plusieurs actionneurs linéaires. En utilisant notre FA-SYNC-X contrôleur d'actionneur ou through 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 le retour de position d'un capteur à effet Hall autant sera similaire. Des valeurs telles que l'impulsion par pouce et les délais entre les impulsions font partie des changements que vous devrez apporter pour utiliser ce code afin d'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

Tags:

Share this article

Collections en vedette

Besoin d'aide pour trouver le bon actionneur?

Nous concevons et fabriquons nos produits de précision afin que vous obteniez les prix directs des fabricants. Nous offrons une livraison le jour même et un support client compétent. Essayez d'utiliser notre calculateur d'actionneurs pour obtenir de l'aide pour choisir l'actionneur adapté à votre application.