Feedback van een optische sensor lezen

Optische sensor

Optische sensoren, bij gebruik met lineaire actuators,Functie erg vergelijkbaar met Hall Effect Sensors, behalve dat ze licht detecteren in plaats van magnetische velden [1]. Optische sensoren werken door licht te gebruiken van een LED of een andere lichtbron die door een encoderschijf wordt geleid. Deze encoderschijf wordt gesloten zodat het licht er periodiek doorheen kan gaan. Aan de andere kant van de schijf staat een fotodetector, die het licht detecteert wanneer het door de slots in de schijf gaat en een uitgangssignaal creëert [1]. Terwijl de actuator beweegt, roteert de encoderschijf en wordt het licht gedetecteerd door de fotodetector die een blokgolf van spanningspulsen produceert. Deze pulsen kunnen op dezelfde manier worden gebruikt als de pulsen van een Hall -effectsensor om te bepalen hoe ver de actuator is verplaatst.

Optische sensor

Positionele feedback van een optische sensor

Aangezien optische sensoren vrijwel vergelijkbaar zijn met Hall Effect -sensoren in termen van hun output, zal deze blogpost kort betrekking hebben op het lezen van hun output voor positionele feedback. Als u op zoek bent naar meer details, bekijk dan ons bericht over het lezen van positionele feedback van een Hall -effectsensor, zoveel zal vergelijkbaar zijn.

Net als Hall Effect -sensoren hebben optische sensoren 3 pins om aan te sluiten; De ene is de ingangsspanning, de andere is de grond, en ten slotte is de ene het uitgangssignaal. Om de pulsen op het uitgangssignaal voor positionele feedback te gebruiken, moet u een microcontroller om de geproduceerde pulsen te tellen. U wilt gebruik maken van de externe interruptpennen van uw microcontroller om deze pulsen nauwkeurig te tellen. Omdat externe onderbrekingen worden geactiveerd door een spanningsverandering, kunnen ze worden gebruikt om elke puls te detecteren wanneer deze zich voordoen. Nadat u uw interrupt in de code van uw microcontroller hebt ingesteld, moet u een interrupterviceroutine instellen die de pulsen telt wanneer deze zich voordoen. De functie countsteps () in het onderstaande codevoorbeeld wordt gebruikt om het aantal pulsen van de optische sensor te tellen.

Om deze pulsen te gebruiken om een ​​positionele waarde te bepalen, moet u de vorige positie van de lineaire actuator kennen en de richting waarin de lineaire actuator reist. Naarmate u regelt op welke manier uw lineaire actuator beweegt, kunt u eenvoudig een variabele instellen Om de richting van de actuator in uw code te volgen. Deze variabele kan worden gebruikt om te bepalen of u de pulsen van uw vorige positie moet toevoegen of aftrekken. Nadat u uw positie hebt bijgewerkt, moet u de getelde pulsen opnieuw instellen naar nul. In het onderstaande codevolg toont u een functie die de positie bijwerkt op basis van het aantal getelde pulsen. Zodra u een positie hebt in termen van pulsen, kunt u omzetten in inches met behulp van de puls per inch specificatie van uw lineaire actuator.

Homing Your Linear Actuator

Om positionele feedback van een optische sensor nauwkeurig te gebruiken, moet u altijd de startpositie van uw lineaire actuator kennen. Hoewel wanneer u uw systeem voor het eerst inschakelt, uw microcontroller niet kan zien of de actuator is uitgebreid of niet. Hiermee moet u uw lineaire actuator naar een bekende functie thuismaken. Om uw lineaire actuator, je moet het naar een bekende positie brengen, zoals volledig ingetrokken. Met behulp van de onderstaande Arduino -code als voorbeeld hebben we een while -lus ingesteld die onze lineaire actuator naar onze bekende positie zal drijven. In dit voorbeeld zullen we weten dat we ons in onze bekende positie bevinden door te controleren of de interrupt is geactiveerd door te controleren of de stappenvariabele is gewijzigd. We moeten er ook voor zorgen dat er voldoende tijd is verstreken om te verwachten dat de interrupt wordt geactiveerd, hiervoor maken we gebruik van de Millis () -functie en vergelijken deze met de vorige tijdstempel. Zodra we hebben vastgesteld dat de lineaire actuator zich in onze thuispositie bevindt, stoppen we met het besturen van de actuator, resetten de stappenvariabele en verlaten de while -lus.

Omgaan met valse triggers

Hoewel optische sensoren niet zo gevoelig zijn voor elektrische ruis als potentiometers, kunnen elektrische ruis en schakelstuiters nog steeds invloed hebben op het uitgangssignaal en kunnen ze valse pulsen activeren. Een paar extra pulsen hebben geen invloed op de positionering, maar na verloop van tijd is het misschien een groter probleem. U kunt deze problemen bestrijden door gebruik te maken van een interne timer om valse triggers uit te filteren. Omdat u kunt bepalen hoe vaak u zou verwachten dat nieuwe pulsen worden gedetecteerd, kunt u eruit filteren wanneer de interrupt werd geactiveerd door ruis. In het onderstaande codevaal is TrigDelay de tijdsvertraging tussen elke puls. Als de interrupt vóór deze vertraging werd geactiveerd, wordt de pols niet geteld. De tijdsduur van deze vertraging zal variëren op basis van uw toepassing, maar als deze te kort is, zal het de ruis niet goed filteren en als het te lang is, zal dit werkelijke pulsen van de optische sensor missen.

Een andere manier om valse triggers te bestrijden, is door de positionele waarde te corrigeren telkens wanneer de actuator een bekende positie bereikt. Net als thuis de lineaire actuator thuiskomen, als u de lineaire actuator naar een volledig ingetrokken of verlengde positie hebt gereden of als u gebruik maakt van externe limietschakelaars, weet u hoeveel pulsen het nodig heeft om die positie te bereiken. U kunt vervolgens de positionele waarde eenvoudig corrigeren met behulp van die waarde wanneer u die bekende positie bereikt. In het onderstaande codevaal wordt dit gedaan voor de volledig uitgebreide en volledig ingetrokken posities. Deze methode biedt een praktische oplossing om ervoor te zorgen dat uw positionele waarde nauwkeurig blijft.

Samenvatting

Optische sensoren die worden gebruikt voor positionele feedback bieden een grotere nauwkeurigheid en resolutie in vergelijking met Hall Effect -sensoren en potentiometers, terwijl vergelijkbare sterke punten en nadelen hebben als Hall Effect -sensoren. Hoewel ze geen absolute positie meten en een bekende startpositie vereisen om een ​​positionele waarde te bieden, zorgen het grote aantal pulsen per inch voor betrouwbaarheid in de positionering en zorgen ze ervoor dat meerdere lineaire actuatoren tegelijkertijd bewegen. Gebruik maken van onze Fa-sync-x Actuatorcontroller of Via extra code, u kunt er zelfs voor zorgen dat de actuatoren zich in het keren bewegen, ongeacht de belasting.

Voor een compleet code -voorbeeld Bekijk onze blog op Hoe u positionele feedback kunt lezen van een Hall -effectsensor zoveel zal vergelijkbaar zijn. Waarden zoals puls per inch en tijdsvertragingen tussen pulsen zijn enkele van de wijzigingen die u moet aanbrengen om die code te gebruiken om uw optische sensor nauwkeurig te gebruiken.

 

[1] Paschotta, R. Artikel over optische sensoren. Opgehaald van:https://www.rp-photonics.com/optical_sensors.html

Share This Article
Tags: