Lesen des Feedbacks eines optischen Sensors

Optischer Sensor

Optische Sensoren bei Verwendung mit Linearantriebe,Funktion sehr ähnlich zu Hall-Effekt-Sensoren, außer dass sie Licht anstelle von Magnetfeldern erfassen [1]. Optische Sensoren arbeiten mit Licht von einer LED oder einer anderen Lichtquelle, die durch eine Encoderscheibe geleitet wird. Diese Encoderscheibe ist geschlitzt, damit das Licht regelmäßig durch sie hindurchtreten kann. Auf der anderen Seite der Platte befindet sich ein Fotodetektor, der das Licht erfasst, wenn es durch die Schlitze in der Platte läuft, und ein Ausgangssignal erzeugt [1]. Während sich der Aktuator bewegt, dreht sich die Codierscheibe und Licht wird vom Fotodetektor erfasst, der eine Rechteckwelle von Spannungsimpulsen erzeugt. Diese Impulse können ähnlich wie die Impulse eines Hall-Effekt-Sensors verwendet werden, um zu bestimmen, wie weit sich der Aktuator bewegt hat.

Optischer Sensor

Positionsrückmeldung von einem optischen Sensor

Da optische Sensoren in Bezug auf ihre Ausgabe Hall-Effekt-Sensoren sehr ähnlich sind, wird in diesem Blogbeitrag kurz erläutert, wie ihre Ausgabe für Positionsrückmeldungen gelesen wird. Wenn Sie nach weiteren Details suchen, lesen Sie unseren Beitrag darüber, wie Sie das Positionsfeedback eines Hall-Effekt-Sensors lesen können.

Wie Hall-Effekt-Sensoren verfügen optische Sensoren über 3 Pins, an die sie angeschlossen werden können. Eine ist die Eingangsspannung, eine andere ist die Masse und eine ist das Ausgangssignal. Um die Impulse des Ausgangssignals für die Positionsrückmeldung zu verwenden, müssen Sie a verwenden Mikrocontroller die erzeugten Impulse zu zählen. Sie möchten die externen Interrupt-Pins Ihres Mikrocontrollers verwenden, um diese Impulse genau zu zählen. Da externe Interrupts durch eine Spannungsänderung ausgelöst werden, können sie verwendet werden, um jeden auftretenden Impuls zu erfassen. Sobald Sie Ihren Interrupt im Code Ihres Mikrocontrollers eingerichtet haben, müssen Sie eine Interrupt-Serviceroutine einrichten, die die auftretenden Impulse zählt. Die Funktion countSteps () im folgenden Codebeispiel wird verwendet, um die Anzahl der Impulse vom optischen Sensor zu zählen.

Um diese Impulse zur Bestimmung eines Positionswerts zu verwenden, müssen Sie die vorherige Position des Linearantriebs und die Richtung kennen, in die sich der Linearantrieb bewegt. Während Sie steuern, in welche Richtung sich Ihr Linearantrieb bewegt, können Sie einfach eine Variable einrichten um die Richtung des Stellantriebs in Ihrem Code zu verfolgen. Mit dieser Variablen können Sie bestimmen, ob Sie die Impulse von Ihrer vorherigen Position addieren oder subtrahieren müssen. Sobald Sie Ihre Position aktualisiert haben, müssen Sie die gezählten Impulse auf Null zurücksetzen. Das folgende Codebeispiel zeigt Ihnen eine Funktion, die die Position basierend auf der Anzahl der gezählten Impulse aktualisiert. Sobald Sie eine Position in Bezug auf Impulse haben, können Sie diese anhand der Impuls-pro-Zoll-Spezifikation Ihres Linearantriebs in Zoll umrechnen.

Referenzieren Sie Ihren Linearantrieb

Um die Positionsrückmeldung eines optischen Sensors genau nutzen zu können, müssen Sie immer die Startposition Ihres Linearantriebs kennen. Obwohl Ihr Mikrocontroller beim ersten Einschalten Ihres Systems nicht erkennen kann, ob der Aktuator ausgefahren ist oder nicht. Dazu müssen Sie Ihren Linearantrieb in eine bekannte Position bringen. Zu Hause dein Linearantriebmüssen Sie es in eine bekannte Position fahren, wie vollständig eingefahren. Am Beispiel des folgenden Arduino-Codes haben wir eine WHILE-Schleife eingerichtet, die unseren Linearantrieb in Richtung unserer bekannten Position treibt. In diesem Beispiel wissen wir, dass wir uns an unserer bekannten Position befinden, indem wir prüfen, ob der Interrupt ausgelöst wurde, indem wir prüfen, ob sich die Schrittvariable geändert hat. Wir müssen auch sicherstellen, dass genügend Zeit vergangen ist, um zu erwarten, dass der Interrupt ausgelöst wird. Dazu verwenden wir die Funktion millis () und vergleichen sie mit dem vorherigen Zeitstempel. Sobald wir festgestellt haben, dass sich der Linearantrieb in unserer Ausgangsposition befindet, stoppen wir den Antrieb des Antriebs, setzen die Schrittvariable zurück und verlassen die WHILE-Schleife.

Umgang mit falschen Auslösern

Während optische Sensoren nicht so empfindlich gegenüber elektrischem Rauschen sind wie Potentiometer, können elektrisches Rauschen und Schalterprellen das Ausgangssignal beeinflussen und falsche Impulse auslösen, die gezählt werden müssen. Ein paar zusätzliche Impulse wirken sich nicht sehr auf die Positionierung aus, aber im Laufe der Zeit kann dies ein größeres Problem sein. Sie können diese Probleme bekämpfen, indem Sie einen internen Timer verwenden, um falsche Auslöser herauszufiltern. Da Sie bestimmen können, wie häufig neue Impulse erkannt werden sollen, können Sie herausfiltern, wann der Interrupt durch Rauschen ausgelöst wurde. Im folgenden Codebeispiel ist trigDelay die Zeitverzögerung zwischen den einzelnen Impulsen. Wenn der Interrupt vor dieser Verzögerung ausgelöst wurde, wird der Impuls nicht gezählt. Die Dauer dieser Verzögerung hängt von Ihrer Anwendung ab. Wenn sie jedoch zu kurz ist, wird das Rauschen nicht richtig herausgefiltert, und wenn sie zu lang ist, werden die tatsächlichen Impulse vom optischen Sensor übersehen.

Eine andere Möglichkeit, falsche Auslöser zu bekämpfen, besteht darin, den Positionswert jedes Mal zu korrigieren, wenn der Aktuator eine bekannte Position erreicht. Wie beim Referenzieren des Linearantriebs wissen Sie, wie viele Impulse erforderlich sind, um diese Position zu erreichen, wenn Sie den Linearantrieb in eine vollständig eingefahrene oder ausgefahrene Position gefahren haben oder wenn Sie externe Endschalter verwenden. Sie können dann einfach den Positionswert mit diesem Wert korrigieren, wenn Sie diese bekannte Position erreichen. Im folgenden Codebeispiel erfolgt dies für die vollständig ausgefahrenen und vollständig eingefahrenen Positionen. Diese Methode bietet eine praktische Lösung, um sicherzustellen, dass Ihr Positionswert genau bleibt.

Zusammenfassung

Optische Sensoren, die für die Positionsrückmeldung verwendet werden, bieten im Vergleich zu Hall-Effekt-Sensoren und -Potentiometern eine höhere Genauigkeit und Auflösung und weisen ähnliche Stärken und Nachteile wie Hall-Effekt-Sensoren auf. Obwohl sie keine absolute Position messen und eine bekannte Startposition benötigen, um einen Positionswert bereitzustellen, ermöglicht die große Anzahl von Impulsen pro Zoll eine zuverlässige Positionierung und stellt sicher, dass sich mehrere Linearantriebe gleichzeitig bewegen. Nutzen Sie unsere FA-SYNC-X Aktorsteuerung oder tdurch zusätzlichen CodeSie können sogar sicherstellen, dass sich die Aktuatoren unabhängig von der Last im Gleichlauf bewegen.

Ein vollständiges Codebeispiel finden Sie in unserem Blog unter Lesen von Positionsrückmeldungen von einem Hall-Effekt-Sensor so viel wird ähnlich sein. Werte wie Impuls pro Zoll und Zeitverzögerungen zwischen Impulsen sind einige der Änderungen, die Sie vornehmen müssen, um diesen Code zur genauen Verwendung Ihres optischen Sensors zu verwenden.

 

[1] Paschotta, R. Artikel über optische Sensoren. Abgerufen von:https://www.rp-photonics.com/optical_sensors.html

Tags:

Share this article

Gestaltete Produkte

Linear Actuator - 12v dc
Klassische Linearantriebe für Stangen In Stock
From $109.99USD
water resistant IP66 Premium Linear Actuator
Premium Linearantriebe In Stock
$129.99USD
TVL-170 Pop-Up-TV-Hebebühne für die Heckmontage
TVL-170 Pop-Up-TV-Hebebühne für die Heckmontage In Stock
On Sale From $590.00USD
Bullet Series 50 Cal. Linearaktuatoren
Bullet Series 50 Cal. Linearaktuatoren In Stock
From $279.99USD

Benötigen Sie Hilfe bei der Suche nach dem richtigen Stellantrieb?

Wir entwickeln und fertigen unsere Produkte präzise, ​​damit Sie direkte Herstellerpreise erhalten. Wir bieten Versand am selben Tag und kompetente Kundenbetreuung. Verwenden Sie unseren Aktuatorrechner, um Hilfe bei der Auswahl des richtigen Aktuators für Ihre Anwendung zu erhalten.