Eigentlich hat Achim einen sehr guten Punkt hier gemacht.
Es gibt einen großen Unterschied zwischen einem Reed (magnetisch) Relais (Schalter) und einem Hall-Effekt-Sensor.
In erster Linie wird ein Reed-Relais einen Schalter anschließen, wenn genügend Magnetkraft auf sie wirken, so dass Sie einen Ein / Aus-Signal. Ein Hall-Effekt-Sensor liefert einen Spannungspegel, der anzeigt, wie viel Magnetkraft auf ihn ausgeübt wird.
Der oben gezeigte Code würde nur "direkt" mit einem Reed-Relais funktionieren, was nicht heißt, dass er für einen Hall-Effekt-Sensor überhaupt nicht funktioniert, sondern zusätzliche Herausforderungen mit einem Hall-Effekt-Sensor bietet.
Die größte Herausforderung wird sein, dass Sie ein analoges Gerät als digitales sind Behandlung - erwarten zu Trigger auf Aufstieg eines Impulses. Nun wird das Signal nicht gepulst werden - es wird im Allgemeinen wie eine Glocke-Kurve, mit allen möglichen Schwankungen. Sie könnten die minimale Spannung für eine hohe Signalfahrt vorbei (etwa 3,5 V, IIRC?) Mehrmals als der Magnet den Hall-Effekt-Sensor passiert.
Natürlich ist unser erster Instinkt, wenn so etwas wie ein Hall-Effekt-Sensor ist den ADC zu verwenden und die Spannungspegel auf einem analogen Stift zu lesen. Sie sind jedoch beschränkt auf 10.000 liest, etwa pro Sekunde auf einem analogen Stift (jede Lese nimmt 100US). Das setzt auch voraus, dass Sie nur die Werte schleifen und lesen - Sie haben nicht viel Zeit, um eine Anzeige zu aktualisieren, zu berechnen usw. Ganz zu schweigen davon, dass Sie Ihr Signal verpasst haben, wenn Sie zur falschen Zeit gelesen haben!
Ich bin sicher, ist es möglich, Unterbrechungen irgendwie mit dem ADC verbunden zu verwenden, aber ich habe nicht diese Kenntnisse praktisch.
Wenn Sie stattdessen einen tatsächlichen Hall-Effekt-Sensor verwenden möchten , würde ich empfehlen, ihn in einen Schmitt-Trigger einzuspeisen, um ihn in ein digitales (Ein / Aus) Signal mit einem kalibrierten Pegel umzuwandeln, der "direkt unter dem Magneten" anzeigt. Abhängig von der im Schmitt-Trigger implementierten Hysterese müssen Sie möglicherweise auch ein De-Bouncing durchführen, um die De-Bounce-Rate basierend auf der aktuellen Geschwindigkeit zu ändern. Dann könnten Sie es wie ein normales Reed-Relais behandeln.
! c