Arduino Lektion 18: Magnetischer Hall Sensor

In diesem Tutorial möchte ich den Magnetischen Hall Sensor beschreiben und eine kleine Schaltung mit diesem aufbauen.

Magnetischer Hall Sensor.
Magnetischer Hall Sensor.

(Dieser Sensor ist extrem klein daher bitte ich für die Pixel zu entschuldigen.)

Der Magnetische Hall Sensor reagiert auf ein Magnetfeld und je nachdem wie dieses gepolt ist (+ / -) reagiert der Sensor.

Dieser Sensor kann bei Amazon.de oder aber auch bei ebay.de günstig erworben werden.

Technische Daten

  • Betriebsspannung:  5V
  • Stromaufnahme im Ruhezustand 3mA
  • Stromaufnahme bei ausgelöstem Signal 8mA

Leider konnte ich keine weiteren Technisches Daten zu diesem Sensor finden.

Der Schaltplan

Der Magnetische Hall Sensor arbeitet wie ein Schalter und daher gibt es „nur“ 3 PINs welche wie folgt belegt werden müssen:

  • G – GND
  • R – 5V
  • Y – digitaler PIN 10

In der folgenden Schaltung habe ich zusätzlich eine LED integriert damit der zustand des Sensors besser zu erkennen ist.

Einfache Schaltung mit einem Magnetischen Hall Sensor und einer LED.
Einfache Schaltung mit einem Magnetischen Hall Sensor und einer LED.

Der Quellcode

Da wie schon angesprochen der Sensor quasi als Schalter dient haben wir nur die beiden Zustände „LOW“ bzw. „HIGH“ abzufragen.

int statusLed = 12 ; // PIN für die LED zur anzeige des Sensor zustandes
int mhSensor = 10 ; // PIN für den Magnetischen Hall Sensors
 
void setup (){
  pinMode (statusLed, OUTPUT) ; // definieren des PIN's für die StatusLED als Ausgangssignal
  pinMode (mhSensor, INPUT) ;  // definieren des PIN's für den Sensor als Eingangssignal
}
 
void loop (){
int val = digitalRead (mhSensor) ; // Lesen des Zustandes des Sensors.
  if (val == LOW){ //Wenn dieser AN ist dann soll die StatusLed leuchten.
    digitalWrite (statusLed, HIGH);
  } else { //Wenn dieser AUS ist dann soll die StatusLed NICHT leuchten.
    digitalWrite (statusLed, LOW);
  }
}

 

Das Ergebnis

Ich habe hier nun ein kleines Video welches demonstriert wie der oben dargestellte Code funktioniert. Es ist gut zu erkennen das der Sensor erst reagiert wenn der Magnet direkt davor ist. Je nachdem wie stark der Magnet ist variiert der Abstand zwischen Sensor und Magnet.

Der Sensor reagiert auch nur auf den Pluspol eines Magneten, d.h. beim Minuspol wird kein Signal empfangen.

Magnetischer Hall Sensor am Arduino UNO

Der Download

Den Quellcode zum Download möchte ich hier anbieten.

7 Gedanken zu „Arduino Lektion 18: Magnetischer Hall Sensor

  • April 12, 2018 um 10:46
    Permalink

    Guten tag Herr Draeger.
    Ich soll im Rahmen meiner Ausbildung einen KY-024 über „C“ programmieren. Leider bin ich völlig überfordert. Haben Sie zufällig für „C“ ebenfalls einen Quellcode, respektive ein Tutorial. Es dankt, ein Verzweifelter!

    Antwort
    • April 13, 2018 um 13:54
      Permalink

      Hallo,

      also von 0 auf 100 in C ist schon etwas schwierig.
      Da kann ich mir gut vorstellen das man da an einigen Stellen verzweifelt.
      Zuerst sollte man bedenken das ein Arduino nicht komplett in C geschrieben wird sondern immer etwas C++ dialekt vorhanden ist. Daher muss man immer prüfen ob bestimmte Funktionalitäten unterstützt werden.
      Jetzt zu dem Sensor KY-024, leider habe ich diesen nicht auf Lager, nach einer kurzen Suche im Internet habe ich aber herausgefunden das dieser über einen digitalen sowie analogen Ausgang verfügt. Daher würde ich diesen mit dem Board wiefolgt verbinden :
      – VCC – 5V
      – GND – GND
      – A0 – analoger PIN A0
      Also Board empfehle ich den Arduino UNO.
      Im Sketch würde dann „nur“ über analogRead(A0); der Wert ausgelesen. Diesen gelesenen Wert kann man nun auf der seriellen Konsole über
      Serial.begin(9600);
      Serial.println(analogRead(A0));
      ausgeben.
      Ein „delay(2500);“ zusätzlich, würde dafür sorgen das die Ausgabe nur alle 2,5 Sekunden erfolgt.

      Gruß,
      Stefan

      Antwort
  • Mai 3, 2019 um 09:51
    Permalink

    Hallo,
    ich würde gerne eine Prüfvorrichtung bauen, welche sicherstellt ob der Magnet richtig verbaut ist. Meine Frage dazu wäre. Denken Sie das der Sensor eine verkehrte Einbaulage erkennen würde?

    Grüße
    Philipp

    Antwort
    • Mai 3, 2019 um 10:16
      Permalink

      Hi,

      du möchtest prüfen ob der Magnet korrekt gepolt eingebaut wurde?

      Gruß,

      Stefan Draeger

      Antwort
  • Mai 3, 2019 um 13:04
    Permalink

    Hi,

    genau. Was würde passieren wenn der Magnet falsch gepolt wäre? Würde der Sensor trotzdem anspringen?

    Es geht um eine Prüfvorrichtung die anzeigt ob der Magnet korrekt gepolt verbaut wurde.

    Grüße

    Antwort
    • Mai 3, 2019 um 14:40
      Permalink

      Hi,

      ich habe gerademal die kleine Schaltung aufgebaut und konnte feststellen das der Sensor nur auf den Pluspol reagiert. D.h. beim Minuspol wird kein Signal gesendet.

      https://youtu.be/IPKCKORC3kg

      Gruß,

      Stefan Draeger

      Antwort
  • Mai 13, 2019 um 10:17
    Permalink

    Hi,

    krass vielen vielen Dank für deine Hilfe.
    Dann geh ich mal was bauen.

    Grüße
    Philipp

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.