Der Hall-Sensor oder auch Hall-Effekt-Sensor (von engl. Edwin Hall) kann magnetische Felder messen, und
damit können wir den Arduino speisen, um somit z.B. einen berührungslosen Schalter zu realisieren.
Man unterscheidet verschiedene Funktionsweisen:
Latching Hall-Sensoren merken sich den zuletzt erkannten Zustand, behalten diesen auch
bei Entfernung des Magneten bei und benötigen ein Magnetfeld in der entgegengesetzten Richtung, um den
Zustand zu wechseln
Non-Latching Hall-Sensoren wechseln und während der Anwesenheit eines Magnetfelds den
Zustand und fallen bei Entfernung des Magneten wieder in den Ausgangszustand. Diese Sensoren gibt es
unipolar (erkennen nur eine magnetische Polarität) und bipolar (erkennen beiden Polaritäten)
In folgendem Beispiel wird ein latching Hall-Sensor von Typ 49E verwendet.
Wichtig in der Schaltung ist zu beachten, dass es eine Verbindung von Ausgang (Out) des Hall-Sensors zum
GND-Anschluss des Arduinos mittels eines 10kΩ Pulldown-Widerstandes.
Andere Sensoren, wie z.B. der US1881, verfügen über einen Open-Collector-Signalausgang und benötigen
zusätzlich einen 10kΩ Widerstand zwischen +5V und dem Signalpin, um korrekt zu funktionieren (oder den
internen Pullup-Widerstand des Arduino-Pins).
Der folgende Sketch liest den aktuellen Wert vom Hall-Sensor ein und schaltet entsprechend dazu eine LED ein oder aus.
#define PIN_HALL_SENSOR 4
#define PIN_LED 8
void setup()
{
pinMode(PIN_HALL_SENSOR, INPUT);
pinMode(PIN_LED, OUTPUT);
}
void loop()
{
digitalWrite(PIN_LED, digitalRead(PIN_HALL_SENSOR));
}
zurück