Lesen des Feedbacks eines optischen Sensors

Optischer Sensor

Optische Sensoren, wenn sie verwendet werden lineare Aktuatoren,funktionieren sehr ähnlich zu Hall -Effekt -Sensoren, außer dass sie Licht anstelle von Magnetfeldern erkennen [1]. Optische Sensoren arbeiten mit Licht aus einer LED oder einer anderen Lichtquelle, die durch eine Encoder -Festplatte geleitet wird. Diese Encoder -Festplatte wird geschleift, damit das Licht regelmäßig durchlaufen kann. Auf der anderen Seite der Scheibe befindet sich ein Fotodetektor, der das Licht erkennt, wenn es durch die Schlitze in der Scheibe verläuft und ein Ausgangssignal erstellt [1]. Während sich der Aktuator bewegt, dreht sich die Encoder -Scheibe und das Licht wird vom Fotodetektor nachgewiesen, der eine quadratische Welle von Spannungsimpulsen erzeugt. Diese Impulse können ähnlich wie die Impulse eines Hall -Effekt -Sensors verwendet werden, um festzustellen, wie weit sich der Aktuator bewegt hat.

Optischer Sensor

Positionsfeedback eines optischen Sensors

Da optische Sensoren den Hall -Effect -Sensoren in Bezug auf ihre Ausgabe sehr ähnlich sind, wird dieser Blog -Beitrag kurz behandelt, wie sie ihre Ausgabe für positionelle Feedback lesen können. Wenn Sie nach weiteren Details suchen, lesen Sie unseren Beitrag zum Lesen von Positionsfeedback von einem Hall -Effect -Sensor ähnlich ähnlich.

Wie Hall -Effekt -Sensoren haben optische Sensoren 3 Pins, mit denen sie eine Verbindung herstellen können. Einer ist die Eingangsspannung, ein anderer ist der Boden und schließlich ist das Ausgangssignal. Um die Impulse für das Ausgangssignal für positionelles Feedback zu verwenden, müssen Sie a verwenden Mikrocontroller um die produzierten Impulse zu zählen. Sie möchten die externen Interrupt -Stifte 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 Impuls nach dem Auftreten zu erkennen. Sobald Sie Ihren Interrupt im Code Ihres Mikrocontrollers eingerichtet haben, müssen Sie eine Interrupt -Serviceroutine einrichten, die die Impulse so zählt, wie sie auftreten. Die Funktion countsteps () im folgenden Codebeispiel wird verwendet, um die Anzahl der Impulse aus dem optischen Sensor zu zählen.

Um diese Impulse zu verwenden, um einen Positionswert zu bestimmen Um die Richtung des Aktuators in Ihrem Code zu verfolgen. Diese Variable kann verwendet werden, um festzustellen, ob Sie die Impulse von Ihrer vorherigen Position hinzufügen 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 Impulsen haben, können Sie mit dem Impuls pro Zollspezifikation Ihres linearen Aktuators in Zoll konvertieren.

Heimwerke Ihres linearen Aktuators

Um positionelles Feedback eines optischen Sensors genau zu nutzen, müssen Sie immer die Ausgangsposition Ihres linearen Aktuators kennen. Wenn Sie Ihr System zum ersten Mal einschalten, kann Ihr Mikrocontroller nicht feststellen, ob der Aktuator erweitert ist oder nicht. Auf diese Weise müssen Sie Ihren linearen Aktuator zu einer bekannten Position nach Hause nehmen. Zu Hause dein LinearantriebSie müssen es in eine bekannte Position fahren, wie vollständig zurückgezogen. Mit dem unten stehenden Arduino -Code als Beispiel haben wir eine Weile Schleife eingerichtet, die unseren linearen Aktuator zu unserer bekannten Position treibt. In diesem Beispiel werden wir wissen, dass wir an unserer bekannten Position sind, indem wir prüfen, ob der Interrupt ausgelöst wurde oder nicht, indem die Stufenvariablen geändert wurden. Wir müssen auch sicherstellen, dass genügend Zeit vergangen ist, um zu erwarten, dass der Interrupt ausgelöst wird. Dies nutzen die Millis () -Funktion () und vergleichen sie mit dem vorherigen Zeitstempel. Sobald wir festgestellt haben, dass sich der lineare Aktuator an unserer Heimposition befindet, hören wir auf, den Aktuator zu fahren, die Stufenvariable zurückzusetzen und die WHLE -Schleife zu verlassen.

Umgang mit falschen Triggern

Während optische Sensoren nicht so empfindlich gegenüber elektrischem Rauschen sind wie potentiometer, können elektrische Rauschen und Schaltersprung das Ausgangssignal beeinflussen und falsche Impulse auslösen, die gezählt werden können. Ein paar zusätzliche Impulse beeinflussen die Positionierung nicht sehr, aber im Laufe der Zeit kann es ein größeres Problem sein. Sie können diese Probleme bekämpfen, indem Sie einen internen Timer verwenden, um falsche Trigger herauszufiltern. Da Sie feststellen können, wie häufig Sie erwarten, dass neue Impulse erkannt werden, können Sie herausfiltern, wenn der Interrupt durch Rauschen ausgelöst wurde. In der folgenden Codeprobe ist TrigDelay die Zeitverzögerung zwischen jedem Impuls. Wenn der Interrupt vor dieser Verzögerung ausgelöst wurde, wird der Puls nicht gezählt. Die Zeitdauer dieser Verzögerung variiert je nach Anwendung. Wenn sie jedoch zu kurz ist, wird das Geräusch nicht richtig herausgefiltert und wenn es zu lang ist, fehlt es die tatsächlichen Impulse aus dem optischen Sensor.

Eine andere Möglichkeit, falsche Trigger zu bekämpfen, besteht darin, den Positionswert jedes Mal zu korrigieren, wenn der Aktuator eine bekannte Position erreicht. Wenn Sie den linearen Aktuator in eine vollständig zurückgezogene oder ausgedehnte Position gefahren haben oder wenn Sie externe Grenzschalter verwenden, wissen Sie, wie viele Impulse erforderlich sind, um diese Position zu erreichen. Sie können dann einfach den Positionswert mit diesem Wert korrigieren, wenn Sie diese bekannte Position erreichen. In der nachstehenden Codeprobe wird dies für die vollständig erweiterten und vollständig zurückgezogenen Positionen erfolgt. Diese Methode bietet eine praktische Lösung, um sicherzustellen, dass Ihr Positionswert genau bleibt.

Zusammenfassung

Optische Sensoren, die für positionelle Rückmeldungen verwendet werden, bieten eine größere Genauigkeit und Auflösung im Vergleich zu Hall -Effekt -Sensoren und Potentiometern, während Sie ähnliche Stärken und Nachteile bei Hall -Effekt -Sensoren haben. Obwohl sie keine absolute Position messen und eine bekannte Ausgangsposition benötigen, um einen Positionswert zu liefern, ermöglicht die große Anzahl von Impulsen pro Zoll Zuverlässigkeit bei der Positionierung und sorgt dafür, dass sich mehrere lineare Aktuatoren gleichzeitig bewegen. Nutze unseres Fa-sync-x Aktuator Controller oder durch zusätzlichen CodeSie können sogar sicherstellen, dass sich die Aktuatoren unabgeformt unabhängig von der Last bewegen.

Für einen vollständigen Code -Beispiel finden Sie unseren Blog on So lesen Sie positionelles Feedback 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 zu verwenden, um Ihren optischen Sensor genau zu verwenden.

 

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

Share This Article
Tags: