Hall-Effekt-Sensor
Hall -Effekt -Sensoren können das Vorhandensein von Magnetfeld erkennen und eine Ausgangsspannung erzeugen, wenn einer erkannt wird. Hall -Effekt -Sensoren, wenn sie verwendet werdenLineare Aktuatoren, sind typischerweise im Getriebe des Aktuators zusammen mit einer magnetischen Scheibe positioniert. Wenn sich der lineare Aktuator erstreckt oder zurückzieht, dreht diese Scheibe den Hall -Effekt -Sensor, wodurch der Sensor einen digitalen Ausgang in Form eines Spannungsimpulses erzeugt. Diese Impulse können gezählt und verwendet werden, um festzustellen, wie weit der Aktuator bewegt wurde.
Positionsfeedback eines Hall -Effekt -Sensors
Ein Nachteil der Verwendung eines Hall -Effekt -Sensors für positionelles Feedback ist, dass sie keine absolute Position messen. Stattdessen produzieren sie Impulse, die gezählt werden können, um festzustellen, wie weit sich der Aktuator bewegt hat. Um diese Impulse für positives Feedback zu verwenden, müssen Sie a verwenden Mikrokontroller um die produzierten Impulse zu zählen. Dazu müssen Sie externe Interrupt-Stifte Ihres Mikrokontrollers verwenden, um diese Impulse so zu zählen, wie sie auftreten. Externe Interrupts sind Stifte, die eine Spannungsänderung erkennen und in unserem Fall verwendet werden können, um den Spannungsimpuls aus dem Hall -Effekt -Sensor zu erfassen. Sie müssen das Datenblatt Ihres Mikrokontrollers konsultieren, um sicherzustellen, welche Stifte Ihres Mikrokontrollers als Interrupt-Stifte verwendet werden können. Mit an ein Arduino uno Zum Beispiel können Pins 2 und 3 für externe Interrupts verwendet werden. Sobald Sie einen geeigneten Interrupt -Stift ausgewählt haben, können Sie den Kabel des Hall -Effekt -Sensorausgangs an diesen Stift anschließen und die Eingangsspannung mit 5 V und gemahlenen Messnadel anschließen.
Das folgende Codebeispiel zeigt, wie ein Interrupt in der Arduino -IDE eingerichtet wird, wobei der Interrupt am steigenden Rand des Spannungsimpulses ausgelöst wird. Sie können Ihren Interrupt so einrichten, dass er an verschiedenen Stellen in einer Spannungsänderung ausgelöst werden soll, und sollten das Datenblatt Ihres Mikrokontrollers konsultieren, um die verfügbaren Optionen zu ermitteln. Der letzte Aspekt, den Sie tun müssen, um Ihren Interrupt einzurichten, besteht darin, Ihre Interrupt -Service -Routine zu schreiben. Dies ist die Funktion, die der Code jedes Mal ausgeführt wird, wenn der Interrupt ausgelöst wird. Diese Funktion sollte kurz sein und nur einfache Aufgaben ausführen, z. B. das Zählen der Anzahl der Impulse aus unserem Hall -Effekt -Sensor. Die Funktion countsteps () im folgenden Codebeispiel wird verwendet, um die Anzahl der Impulse aus dem Hall -Effekt -Sensor zu zählen.
Um diese Impulse zu verwenden, um einen Positionswert zu bestimmen, müssen Sie die vorherige Position des linearen Aktuators und die Richtung, in die linearer Aktuator reist Sie können also einfach eine Variable einrichten, um die Richtung des Aktuators in Ihrem Code zu verfolgen, mit dem Sie feststellen, ob Sie die Impulse von Ihrer vorherigen Position hinzufügen oder abziehen. 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. In der folgenden Codeprobe beträgt der Puls pro Zoll -Reise 3500.
Heimwerke Ihres linearen Aktuators
Um positionelles Feedback eines Hall -Effekt -Sensors genau zu nutzen, müssen Sie immer die Ausgangsposition Ihres linearen Aktuators kennen. Wenn Sie Ihr System zum ersten Mal einschalten, kann Ihr Mikrokontroller nicht feststellen, ob der Aktuator verlängert wird oder nicht. Auf diese Weise müssen Sie Ihren linearen Aktuator zu einer bekannten Position nach Hause nehmen. Um Ihren linearen Aktuator nach Hause zu bringen, müssen Sie ihn in eine bekannte Position fahren, wie vollständig zurückgezogen. Sie könnten auch benutzen Externe Grenzschalter Um Ihre bekannte Position an einen anderen Ort als vollständig verlängert oder zurückzuziehen. Mit dem unten stehenden Arduino -Code möchten wir eine Weile einrichten, die unseren linearen Aktuator zu Ihrer bekannten Position treiben, in diesem Fall vollständig zurückgezogen. Wir wissen, dass Sie an unserer bekannten Position sind, da der Interrupt des Hall -Effect -Sensors nicht ausgelöst wird. In diesem Fall überprüfen wir, ob sich die Schrittevariable geändert hat oder nicht, um festzustellen, ob der Interrupt ausgelöst wurde. Wir müssen auch sicherstellen, dass genügend Zeit vergangen ist, um zu erwarten . 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 Hall -Effekt -Sensoren nicht so empfindlich gegenüber elektrischem Rauschen wie ein Potentiometer sind, kann sich das elektrische Rauschen dennoch auf das Ausgangssignal auswirken. Das Schaltersprung kann auch ein Problem bei Hall-Effect-Sensoren sein, das möglicherweise falsche Impulse auswirkt, die sich auswirken würde, wie weit Ihr Mikrokontroller der Meinung ist, dass sich Ihr linearer Aktuator bewegt hat. Ein paar zusätzliche Impulse beeinflussen die Positionierung nicht sehr, da es 1000 Impulse pro Zoll gibt, 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 Code-Probe ist Trigg-Delay 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 ordnungsgemäß herausgefiltert. Die Geschwindigkeit des linearen Aktuators wirkt sich auch auf diese Verzögerung aus. Wenn Sie die Geschwindigkeit einstellen möchten, muss diese Variable möglicherweise ändern, um die neue Häufigkeit der erwarteten Impulse anzupassen. Um eine genaue Verzögerung zwischen jedem Impuls genau zu bestimmen, können Sie einen Logikanalysator verwenden, um das tatsächliche Signal aus dem Hall -Effekt -Sensor anzuzeigen. Dies ist zwar in den meisten Anwendungen nicht erforderlich, wenn Sie eine sehr genaue Positionierung benötigen, möchten Sie möglicherweise eine genaue Verzögerung festlegen.
Eine andere Möglichkeit, falsche Trigger zu bekämpfen, besteht darin, den Positionswert jedes Mal zu korrigieren, wenn der Aktuator eine bekannte Position erreicht. Wie die Heimat des linearen Aktuator Externe GrenzschalterSie werden wissen, wie weit sich der Aktuator bewegt hat. Da Sie wissen, wie viele Schritte der Hall -Effekt -Sensor gesendet werden sollte, um Ihre bekannte Position zu erreichen, können Sie den Wert einfach korrigieren, wenn wir ihn erreichen. In der nachstehenden Codeprobe wird dies für die vollständig erweiterten und vollständig zurückgezogenen Positionen erfolgt. Da sich der Aktuator nicht bewegt, wenn er eine dieser Positionen erreicht hat, wissen wir, dass wir am Grenzwert sind, wenn wir versuchen, den Aktuator zu steuern und der Positionswert nicht ändert. Diese Methode bietet eine praktische Lösung, um sicherzustellen, dass Ihr Positionswert genau bleibt, insbesondere wenn Sie Ihren Aktuator während des Betriebs vollständig zurückziehen oder vollständig erweitern. Sie können diese Methode in Verbindung mit der oben beschriebenen Methode verwenden, die dazu beitragen soll, die Genauigkeit Ihres Positionswerts aufrechtzuerhalten.
Zusammenfassung
Die Verwendung eines Hall -Effect -Sensors für das positionale Feedback sorgt für eine viel größere Auflösung als das Feedback eines Potentiometers. Da es 1000 Impulse pro Zoll Bewegung geben kann, bieten Hall -Effekt -Sensoren Präzision und Zuverlässigkeit bei der Positionierung Ihres linearen Aktuators. Hall -Effekt -Sensoren bieten auch eine größere Fähigkeit, sicherzustellen, dass sich mehrere lineare Aktuatoren gleichzeitig zusammenziehen, da die Impulszahlen genauer sind als die sich ändernde Spannung des Potentiometers. Nutze unseres Fa-sync-x Der Aktuator -Controller, Sie können sogar sicherstellen, dass sich die Aktuatoren unabhängig von der Last bewegen. Bei Heimwerken können Sie überprüfen, wie sich Ihre Aktuatoren mit einem Arduino im Einklang bewegen Hier.
Im Folgenden finden Sie den vollständigen Beispielcode, der in diesem Blog verwendet wird, und wurde erstellt, um eine 14 -Zoll -Strichlänge zu kontrollieren Bullet Series 36 Cal. Linearantrieb. Der lineare Aktuator wird mit a angetrieben Kraftfahrer, was Sie lernen können, wie man eingerichtet wird Hier.
[1] Monari, G. (Juni 2013) Verständnis der Lösung in optischen und magnetischen Encodern. Abgerufen von: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders