Inhaltsverzeichnis:
- Schritt 1: Was ist ein Hall-Effekt-Sensor?
- Schritt 2: Was ist ein Interrupt?
- Schritt 3: Verbindungen und Code
- Schritt 4: Weitere Aktionen
Video: Arduino Hall-Effekt-Sensor mit Interrupts - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Hallo allerseits, Heute zeige ich Ihnen, wie Sie einen Hall-Effekt-Sensor an einen Arduino anschließen und mit einem Interrupt verwenden können.
Im Video verwendete Werkzeuge und Materialien (Affiliate-Links): Arduino Uno:
Hall-Effekt-Sensoren:
Verschiedene Widerstände:
Schritt 1: Was ist ein Hall-Effekt-Sensor?
Ein Hall-Effekt-Sensor ist ein Gerät, das verwendet wird, um die Stärke eines Magnetfelds zu messen. Seine Ausgangsspannung ist direkt proportional zur magnetischen Feldstärke durch ihn.
Hall-Effekt-Sensoren werden für Näherungssensorik, Positionierung, Geschwindigkeitserkennung und Stromsensoranwendungen verwendet.
Der, mit dem ich heute arbeiten werde, trägt die Bezeichnung 3144, ein Hall-Effekt-Schalter, der hauptsächlich für Hochtemperatur- und Automobilanwendungen verwendet wird. Sein Ausgang ist standardmäßig hoch und geht einmal auf niedrig, wenn ein Magnetfeld vorhanden ist.
Der Sensor hat 3 Pins, VCC, Masse und Ausgang. Sie können sie in dieser Reihenfolge identifizieren, wenn Sie den Sensor mit den Etiketten zu sich hin halten. VCC befindet sich auf der linken Seite und der Ausgang befindet sich auf der rechten Seite. Um eine Spannungsdrift zu verhindern, wird zwischen VCC und dem Ausgang in einer Pull-Up-Konfiguration ein 10k-Widerstand verwendet.
Schritt 2: Was ist ein Interrupt?
Um den Sensor mit dem Arduino zu verbinden, verwenden wir eine einfache, aber sehr leistungsstarke Funktion namens Interrupt. Ein Interrupt-Job soll sicherstellen, dass der Prozessor schnell auf wichtige Ereignisse reagiert. Wenn ein bestimmtes Signal erkannt wird, unterbricht ein Interrupt (wie der Name schon sagt) alles, was der Prozessor tut, und führt einen Code aus, der darauf ausgelegt ist, auf jeden externen Stimulus zu reagieren, der dem Arduino zugeführt wird. Sobald dieser Code abgeschlossen ist, geht der Prozessor zu dem zurück, was er ursprünglich getan hat, als ob nichts passiert wäre!
Das Tolle daran ist, dass es Ihr System so strukturiert, dass es schnell und effizient auf wichtige Ereignisse reagiert, die in Software nicht leicht vorhersehbar sind. Das Beste daran ist, dass Ihr Prozessor für andere Aufgaben frei wird, während er auf das Erscheinen eines Ereignisses wartet.
Der Arduino Uno hat zwei Pins, die wir als Interrupts verwenden können, Pin 2 und 3. Die Funktion, die wir verwenden, um den Pin als Interrupt zu registrieren, heißt attachInterrupt, wobei wir als ersten Parameter den zu verwendenden Pin senden, der zweite Parameter ist den Namen der Funktion, die wir aufrufen möchten, sobald ein Interrupt erkannt wird, und als dritten Parameter senden wir den Modus, in dem der Interrupt arbeiten soll. In der Videobeschreibung befindet sich ein Link zur vollständigen Referenz für diese Funktion.
Schritt 3: Verbindungen und Code
In unserem Beispiel verbinden wir den Hall-Effekt-Sensor mit Pin 2 des Arduino. Am Anfang der Skizze definieren wir die Variablen für die Pin-Nummer der eingebauten LED, den Interrupt-Pin sowie eine Byte-Variable, die wir zum Modifizieren durch den Interrupt verwenden. Es ist wichtig, dass wir diesen als flüchtig markieren, damit der Compiler weiß, dass er außerhalb des Hauptprogrammflusses durch den Interrupt geändert wird.
In der Setup-Funktion legen wir zunächst die Modi an den verwendeten Pins fest und hängen dann den Interrupt wie zuvor erklärt an. Eine andere Funktion, die wir hier verwenden, ist digitalPinToInterrupt, die, wie der Name schon sagt, die Pinnummer in die Interruptnummer übersetzt.
Bei der Hauptmethode schreiben wir einfach die Zustandsvariable auf den LED-Pin und fügen eine sehr kleine Verzögerung hinzu, damit der Prozessor Zeit hat, richtig zu arbeiten.
Wo wir den Interrupt angehängt haben, haben wir blink als zweiten Parameter angegeben und dies ist der Funktionsname, der aufgerufen werden soll. Im Inneren invertieren wir einfach den Zustandswert.
Der dritte Parameter der Funktion attachIntertupt ist der Modus, in dem sie arbeitet. Wenn wir es als CHANGE haben, wird die Blinkfunktion jedes Mal ausgeführt, wenn sich der Interrupt-Zustand ändert, also wird sie einmal aufgerufen, sobald wir den Magneten in die Nähe des Sensors bringen, und erneut ausgelöst, wenn wir ihn entfernen. Auf diese Weise leuchtet die LED, während wir den Magneten nahe an den Sensor halten.
Wenn wir nun den Modus auf RISING ändern, wird die Blinkfunktion erst ausgelöst, wenn am Interrupt-Pin eine steigende Flanke des Signals zu sehen ist. Jedes Mal, wenn wir den Magneten in die Nähe des Sensors bringen, schaltet sich die LED entweder aus oder ein, also haben wir im Grunde einen Magnetschalter gemacht.
Der letzte Modus, den wir ausprobieren werden, ist LOW. Damit wird beim Schließen des Magneten ständig die Blinkfunktion ausgelöst und die LED flackert, wobei ihr Zustand ständig invertiert ist. Wenn wir den Magneten entfernen, ist es wirklich unvorhersehbar, wie der Zustand enden wird, da dies vom Zeitpunkt abhängt. Dieser Modus ist jedoch sehr nützlich, wenn wir wissen möchten, wie lange eine Taste gedrückt wurde, da wir die Zeitfunktionen verwenden können, um dies zu bestimmen.
Schritt 4: Weitere Aktionen
Interrupts sind eine einfache Möglichkeit, Ihr System schneller auf zeitkritische Aufgaben zu reagieren. Sie haben auch den zusätzlichen Vorteil, dass Sie Ihre Hauptschleife () freigeben, um sich auf einige Hauptaufgaben im System zu konzentrieren. (Ich finde, dass dies meinen Code bei der Verwendung etwas organisierter macht - es ist einfacher zu erkennen, wofür der Hauptteil des Codes entworfen wurde, während die Interrupts periodische Ereignisse verarbeiten.) Das hier gezeigte Beispiel ist so ziemlich das meiste Grundfall für die Verwendung eines Interrupts - Sie können sie zum Lesen eines I2C-Geräts, zum Senden oder Empfangen von drahtlosen Daten oder sogar zum Starten oder Stoppen eines Motors verwenden.
Wenn Sie eine interessante Verwendung eines Interrupt- oder Hall-Effekt-Sensors haben, lassen Sie es mich bitte in den Kommentaren wissen, teilen Sie dieses Instructable und vergessen Sie nicht, meinen YouTube-Kanal für weitere tolle Tutorials und Projekte in der zu abonnieren Zukunft.
Prost und danke fürs Zuschauen!
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E