A06|01 Der Hall-Magnetsensor
Hall Magnetic Sensor
Sensorwerte / Magnetsensoren
Ein Hall-Magnet-Sensor ist ein sogenannter Induktionssensor und ist in der Lage, die Stärke von Magnetfeldern zu messen. Die Messung ist proportional zum Magnetfeld. Das heißt je näher der Sensor zum Magnetfeld kommt, umso stärker wirkt er auf den Sensor.
Der Hall-Magnet kann zur Erfassung von Dreh- und Linearbewegungen eingesetzt werden. Beispielsweise wird die Drehzahl eines Motors gemessen, in dem ein Dauermagnet am Rotor angebracht wird. In Computer-Tastaturen erkennen sie, wenn eine Taste gedrückt wird. Es wird überall dort eingesetzt, wo berührungslose und versteckte Sensierung eine wichtige Rolle spielt. So lassen sich z.B. große Ströme mit speziellen Stromzangen berührungslos messen.
Spezifikationen
- Betriebsspannung: 5V
- Signalart: Digital
- Pinabstand: 2.54mm
- Erkennung magnetischer Materialien
- Erfassungsbereich: bis zu 3 cm
- Erfassungsbereich und Magnetfeldstärke sind proportional
Als Näherungsschalter können sie z.B. die Position von Maschinenteilen detektieren oder Sicherheitsfunktionen auslösen. Neben dem berührungslosen Einsatz bietet ihre verschleißfreie Anwendung sehr große Vorteile. Durch ihre praktisch unbegrenzte Lebensdauer eignen sie sich hervorragend in wartungsarmen Anwendungsgebieten.
Der Hall-Effekt
Zusätzlich zur Magnetstärke können Hallsensoren sogar eine Umkehr eines Magnetfeldes detektieren. Aber wie sieht es nun mit dem Funktionsprinzip aus?
Stellen wir uns vor, dass in einen geschlossenen Stromkreis ein Quader aus Eisen eingefügt wird. Der elektrische Strom fließt jetzt durch diesen Leiter, den wir Probe nennen wollen. Wird die Probe in ein Magnetfeld gehalten, so wirkt auf die fließenden Elektronen die sogenannte Lorentzkraft. Durch die Lorentzkraft werden die Elektronen senkrecht zur Fließrichtung abgelenkt. Als Folge entwickelt sich ein Konzentrationsgefälle von Ladungsträgern: Auf der einen Quaderseite entsteht ein Elektronenüberschuss und entsprechend auf der gegenüberliegenden Seite ein Elektronenmangel. Es kommt zu einer Ladungstrennung. Somit entsteht zwischen beiden Seiten eine Spannung, die als Hall-Spannung bezeichnet wird.
Die Hall-Spannung kann nicht direkt ausgewertet werden, da sie nur schwach ausgeprägt ist und stark temperaturabhängig ist. Um einen anwendbaren Hall-Sensor zu erhalten, wird die Hall-Komponente in eine integrierte Schaltung eingebettet. Die untere Abbildung zeigt das Blockbild der viel verwendeten Hall-Sensorreihe 3144 THRU.
Bei dem Magnetsensor von Keyestudio handelt es sich um einen digitalen Hall-Sensor. Bedeutet: Wir bekommen wir keine Werte, wie intensiv ein Magnetfeld ist, sondern ob er in einer bestimmten Stärke vorliegt. Mit anderen Worten gibt der Sensor ein digitales Signal (HIGH oder LOW) aus, sobald ein Magnet in der Nähe ist. Je nach Magnetstärke variiert der Erfassungsbereich. Verkable das Modul, lade den unteren Sketch auf dein Arduino und experimentiere mit einem Magneten.
Übrigens funktioniert der Sensor auch ohne Arduino. Der Hall-Sensor reagiert auf Magnete, in dem die integrierte LED aufleuchtet. Dazu muss man das Modul nur mit Strom versorgen: Der V-Pin wird mit 5V und der G-Pin mit GND verbunden.
Der Aufbau
Verbinde dein Arduino mithilfe der Jumper Wire mit dem Modul:
Der minimal Sketch
Der Test-Sketch für die Magnetsensor ist denkbar einfach. Folgender Sketch liest den Zustand des Sensors und lässt entsprechend eine LED ein- oder ausschalten. Dieser Sketch ist in seinem Aufbau identisch mit dem Code aus dem Kapitel für den digitalen Momentanschalter - bis auf die Variablennamen. Siehe für nähere Erläuterungen des Sketches in A07|01 Der digitale Momentanschalter nach. Kopiere den unteren Sketch, füge ihn in die Arduino IDE ein und lade ihn auf das Arduino-Board rauf.
/********************************************************
A06|01 Der Hall-Magnetsensor
Mr Robot UXSD / www.mrrobotuxsd.com
*********************************************************/
int ledPin = 13; //Wähle den Pin für die LED
int hallPin = 3; //Sensor an Eingangspin 3 anschließen
int hallValue = 0; //Variable zum Lesen des Pin-Status
void setup()
{
pinMode(ledPin, OUTPUT); //LED als Ausgang deklarieren
pinMode(hallPin, INPUT); //Taste als Eingang deklarieren
}
void loop()
{
hallValue = digitalRead(hallPin); //Eingabewert lesen
if (hallValue == HIGH) //prüfen, ob der Eingang HIGH ist
{
digitalWrite(ledPin, LOW); //LED ausschalten
}
else
{
digitalWrite(ledPin, HIGH); //LED einschalten
}
}
Verwandte Themen
Falls du die hier beschriebenen Elektronik-Module nicht hast kannst du sie in meiner Einkaufsliste finden. Warum ich selber hauptsächlich mit Modulen der Marke Keyestudio arbeite erläutere ich unter diesem Blog-Artikel.