Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Arduino Lektion 18: Magnetischer Hall Sensor

Posted on 7. Februar 20165. März 2024 by Stefan Draeger

Ein magnetischer Hall Sensor ist ein Schlüsselelement in der Welt der Sensorik, das durch präzise Messungen magnetischer Felder eine bedeutende Rolle einnimmt. Von der Automobilindustrie bis zur Elektronik hat der magnetische Hall-Sensor in verschiedensten Anwendungsbereichen an entscheidender Bedeutung gewonnen. In diesem Beitrag möchte ich dir nun gerne zeigen, wie du diesen Sensor am Arduino anschließt und programmierst.

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.

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

  • Technische Daten
  • Der Schaltplan
  • Der Quellcode
  • Das Ergebnis
  • Der Download

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, dass der Sensor erst reagiert, wenn der Magnet direkt davor ist. Je nachdem wie stark der Magnet ist variiert der Abstand zwischen Sensor und Magnet.

Magnetfeld Sensor
Dieses Video auf YouTube ansehen.

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

Magnetischer Hall Sensor am Arduino UNO
Dieses Video auf YouTube ansehen.

Der Download

Den Quellcode zum Download möchte ich hier anbieten.

Magnetischer Hall SensorHerunterladen

7 thoughts on “Arduino Lektion 18: Magnetischer Hall Sensor”

  1. Verzweifelt sagt:
    12. April 2018 um 10:46 Uhr

    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!

    Antworten
    1. Stefan Draeger sagt:
      13. April 2018 um 13:54 Uhr

      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

      Antworten
  2. Philipp Stone sagt:
    3. Mai 2019 um 09:51 Uhr

    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

    Antworten
    1. Stefan Draeger sagt:
      3. Mai 2019 um 10:16 Uhr

      Hi,

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

      Gruß,

      Stefan Draeger

      Antworten
  3. Philipp Stone sagt:
    3. Mai 2019 um 13:04 Uhr

    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

    Antworten
    1. Stefan Draeger sagt:
      3. Mai 2019 um 14:40 Uhr

      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

      Antworten
  4. Philipp Steiner sagt:
    13. Mai 2019 um 10:17 Uhr

    Hi,

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

    Grüße
    Philipp

    Antworten

Schreibe einen Kommentar Antworten abbrechen

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

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}