Sinamics Siemens


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Hall-Sensor des ESP32

Die Hallsensoren nutzen den Hall-Effekt, der sich einstellt, wenn ein stromdurchflossener Leiter vom magnetischen Feld erfasst wird. Mit Hall-Sensoren kann die Stärke des magnetischen Feldes gemessen werden. Meistens hat ein Hall-Sensor die Form einer rechteckigen Platte mit vier Elektroden an den Rändern. Zwei von ihnen werden verwendet, um externe Stromquelle anzuschließen. Die anderen beiden Elektroden dienen der Spannungsmessung. Infolge der Einwirkung eines Magnetfeldes verändert sich der Stromflussweg in der Leiterplatte. Dadurch entsteht eine Potenzialdifferenz, die an den Messelektroden festgestellt werden kann. Die hier gemessen Spannung ist ein Maß für die magnetische Feldstärke, die an die Platte einwirkt und kann für Steuerungszwecke genutzt werden. Der Hall-Effekt wurde nach dem US-amerikanischen Physiker Edwin Hall benannt.
Der ESP32 verfügt über einen internen Hall-Sensor. In der folgenden Schaltung soll der Sensor die Einwirkung eines Magneten erkennen und eine grün leuchtende RGB-Leuchtdiode rot leuchten lassen.

ESP32 mit Hall-Sensor

Der ESP32 hat einen eingebauten Hall-Sensor. Eine Gelegenheit für eine Schaltung mit nur wenig externen Komponenten.

ESP32 - Einführung


RGB - Leuchtdioden

Eine RGB-Leuchtdiode vereint in einem Gehäuse drei einzelne Leuchtdioden, die rot, grün und blau leuchten. Durch Mischung diesen drei Grundfarben mit unterschiedlicher Intensität werden andere Farbtöne erzeugt.

Magnet

Dauermagnet. Die Spannungswerte am Hall-Sensor ändern sich bei Einwirkung eines Magnetfeldes.

Der Schaltplan

Schaltplan

Schaltplan

Das Programm (Sketch)

// *************************************************************************************
// ESP32
// Hall-Sensor des ESP32
// ESP32-Dev-KitC V4
// Arduino IDE 1.8.19
// *************************************************************************************
  int RGB_gruen = 13;
  int RGB_rot = 12;
  int Messwert [10];
  
  // ***********************************************************************************
  void setup() {

      pinMode (RGB_rot, OUTPUT);
      pinMode (RGB_gruen, OUTPUT);
      Serial.begin(57600);
  }

  // ***********************************************************************************
  void loop() {

      int Messwert_Aktuell = hallRead();
      int Mittelwert = 0;
      for (int i=0; i<9; i++) {
          Messwert [i] = Messwert [i+1];
          Mittelwert = Mittelwert + Messwert [i];
      }
      Messwert [9] = Messwert_Aktuell;
      Mittelwert = (Mittelwert + Messwert [9]) / 10;
      Serial.print("Messwert Hall-Sensor: ");
      Serial.print(Messwert_Aktuell);
      Serial.print(" Aktueller Mittelwert: ");
      Serial.println(Mittelwert);
      if (Mittelwert > 6) {
          digitalWrite (RGB_rot, LOW);
          digitalWrite (RGB_gruen, HIGH);
          Serial.println("kein Magnet erkannt");
      } else {
          digitalWrite (RGB_rot, HIGH);
          digitalWrite (RGB_gruen, LOW);
          Serial.println("Magnet erkannt");          
      }
      delay (500);
  } 
  // ***********************************************************************************       
  

Die Testschaltung

Testschaltung

Testschaltung

Die Schaltung dürfte beim Aufbau niemandem Probleme bereiten. Eine RGB-Leuchtdiode und ein Widerstand sind schnell auf dem Steckbrett untergebracht. Der Hall-Sensor, der hier untersucht wird, ist in dem ESP32-Modul integriert und daher unsichtbar. Die RGB-Leuchtdiode hat vier Anschlüsse. Bei ihr handelt es sich um die Version „Common cathode“. Das längste Beinchen ist damit die gemeinsame Kathode, die mit Masse (-) verbunden wird. In dem Zweig wird noch ein Widerstand eingebaut, um den Strom zu begrenzen. Die anderen drei Beinchen beziehen sich auf die einzelnen Farben der RGB-LED und werden an die Ausgänge des ESP32 angeschlossen. In unserem Versuch werden nur zwei Farben, grün und rot, benötigt.
In dem Programm wird mit der Funktion hallRead() der aktuelle Wert, den der Hall-Sensor liefert, ausgelesen und auf dem seriellen Monitor angezeigt. In dem Versuch stellte sich heraus, dass der Sensor äußerst unempfindlich ist und Werte liefert, die alles andere als vertrauenswürdig sind. Der Plan war, mit der grünen Leuchtdiode den Zustand „kein Magnet erkannt“ und mit der rote „Magnet erkannt“ anzuzeigen. Das Ziel war äußerst schwierig zu erreichen. Immer wieder wurden Werte ausgelesen, die stark von anderen abwichen. Mit Einführung eines Mittelwertes beruhigte sich ein wenig die Lage. Zusätzlich konnte das Experiment erst mit einem sehr starken Magnet durchgeführt werden.
Die unten aufgeführten Messergebnisse gehören zu den gelungenen und beziehen sich auf zwei ESP32-Boards. Hier kann man sehen, dass die Werte vom zweiten Board in völlig anderen Bereichen liegen. Sollte in einem Projekt ein Hall-Sensor zum Einsatz kommen, ist es sinnvoll, über externe Hall-Sensoren nachzudenken.


Ergebnisse (ESP32 Nr.1)

Ergebnisse (kein Magnet erkannt

Ergebnisse (Serieller Monitor, kein Magnet erkannt)

Ergebnisse (Magnet erkannt)

Ergebnisse (Serieller Monitor, Magnet erkannt)

Ergebnisse (ESP32 Nr.2)

Ergebnisse Versuch 2 (kein Magnet erkannt

Ergebnisse Versuch 2 (Serieller Monitor, kein Magnet erkannt)

Ergebnisse Versuch 2 (Magnet erkannt)

Ergebnisse Versuch 2 (Serieller Monitor, Magnet erkannt)


Kurzvideo

Kurzvideo


Weitere Themen:



Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz