Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Strom messen mit Hilfe des Hall-Effektes

Mit einem Hall-Sensor vermisst man in erster Linie Magnetfelder. Allerdings lässt er sich auch zum Messen von Strömen einsetzen; dazu nutzt man den Hall-Effekt aus. Dieser tritt mit maximaler Wirkung genau dann ein, wenn sich Ladung senkrecht zu einem Magnetfeld bewegt; er ist nicht nachweisbar, wenn sich die Ladung kollinear (parallel) zu den magnetischen Feldlinien bewegt. Auf die sich senkrecht zum Magnetfeld bewegende Ladungen wirkt die Lorentzkraft FL und bewirkt in einem Leiter eine Ladungsverschiebung, die als sogenannte Hall-Spannung gemessen werden kann.

In diesem Kapitel wird der Sensor ACS712-20A-T betrachtet, den es in verschiedenen Ausführungsformen für 5A, 20A und 30A gibt. In dieser Übung wird der Sensor ACS712-20A-T eingesetzt.

Der Sensor ACS712-20A-T

Kurzinformation

Eigenschaften

 

  • Strommessung basiert auf dem Hall-Effekt
  • Nichtlinearität: 1,5 %
  • Ausgangsspannung 0 A: VCC * 0,5
  • Innere Leiterwiderstand 1,2 mOhm (Milliohm)
  • Betriebsspannung: 5V
  • Sensitivität: 100 mV/A
  • Ausgangsspannung ist proportional zu Gleich- oder Wechselströmen
  • 2,1kV (RMS) Isolationsspannung zwischen Signalleitungen (Pin 5 - 8) und Strompfad.

Kurzbeschreibung

Der Sensor besteht aus einem linearen Hall Schaltkreis mit einer Kupferleitung (Widerstand: 1,2 mOhm) auf der Oberfläche eines Würfels. Wird ein Strom durch diese Kupferleitung geschickt, bildet sich um den Leiter ein Magnetfeld aus, das vom Hall-IC in eine proportionale Spannungsgröße umgewandelt wird. Der geringe Abstand zwischen Leiter und Hall-Wandler erhöht die Genauigkeit des Sensors.

Der Hall-Effekt

Auf die beweglichen Ladungsträger in einem Magnetfeld wirkt die Lorentzkraft FL; ihre Größe ist direkt proportional zur Geschwindigkeit v der Ladungsträger und zur Stärke B der magnetischen Flussdichte. Die Kraft F, Geschwindigkeit v und magnetische Flussdichte B sind vektorielle Größen;

Im folgenden Bild befindet sich ein metallener Leiter senkrecht zu einem Magnetfeld. Wird eine Energiequelle angeschlossen, bewegen sich die freien Ladungsträger im Metall vom Minus- zum Pluspol (physikalische Stromrichtung). Auf bewegte Ladungen im Magnetfeld wirkt die Lorentzkraft und bewirkt, dass sich ein negativer Ladungsüberschuss an der oberen Seite der Metallplatte und ein Elektronenmangel an der Unterseite ausbildet. Diese Querspannung wird als Hall-Spannung UH, das Auftreten der Querspannung als Hall-Effekt bezeichnet.

Die Hall-Spannung ist direkt proportional der Stromstärke I und der magnetischen Flussdichte B und umgekehrt proportional der Dicke d der Leiterfolie. Als formelmäßiger Zusammenhang ergibt sich:

Wir beginnen in Übung 1 mit der Aufnahme der U-I-Kennlinie des ACS712-Sensors. Benötigt wird ein stromgeregeltes Labornetzgerät; es wird eine feste Stromstärke eingestellt und der Spannungswert am Display abgelesen.

Übung 1

Material

  • 1x  Arduino Uno
  • 1x  Steckernetzteil
  • 1x  Steckbrett
  • 1x  LCD, 2-zeilig
  • 1x  ACS712-20
  • div. Steckdrähte

 

Aufgaben

  • Baue die Schaltung nach Skizze auf.
  • Übertrage das Programm ACS_Kennlinie.ino in den Editor und speichere es ab.
  • Starte das Programm.
  • Notiere die Werte von Spannung U und Stromstärke I in Schritten von 0,5A von 0 - 5 Ampere.

Schaltskizze

Abbildung 1 - Schaltungsaufbau zur U-I-Kennlinienaufnahme des ACS712-20

Die Messergebnisse

Abbildung 2 - Spannungsmessung am ACS217-20 mit stromgeregeltem Labornetzteil

U-I-Kennlinie des ACS712-20 zur Bestimmung der Sensitivität

Abbildung 3 - Der 2%-Fehlerbalken ergibt sich u.a. aus den Messungenauigkeiten bei der Stromeinstellung. Die Steigung der Ausgleichsgeraden bestimmt die Sensitivität.

Nach Datenblatt des Herstellers liegt die typische Sensitivität eines ACS712-20 Sensors bei 100mV/A.

Das Programm ACS_Kennlinie.ino

Wie arbeitet das Programm ACS_Kennlinie.ino?

Für eine Ausgabe der Daten auf einem 2-zeiligen LCD mit 16 Zeichen pro Zeile muss die Bibliotheksdatei LiquidCrystal in das Programm eingebunden werden (Zeile 1).

Um die Anzahl der benutzten Portleitungen möglichst gering zu halten, wird eine 4-Bit Ansteuerung vorgenommen, die in Zeile 2 initiiert wird. Die vier Datenleitungen des LCD (DB4, DB5, DB6, DB7) werden mit den Portleitungen D4 - D7 und RS sowie Enable mit D12 und D11 verbunden (Zeile 2).

In der Methode setup() wird das LCD gestartet und als Referenzspannung die anliegende Betriebsspannung des Arduino UNO genommen.

 

Zeilen 16 - 21

In der Loop wird in Zeile 16 mit analogRead der vom ADC gelieferte Zahlenwert (0 ... 1023) eingelesen und in der Variablen spannung abgelegt. In Zeile 20 erfolgt die Umrechnung vom ADC-Wert in einen Spannungswert und die Ausgabe im LCD.

Ströme messen

Das Programm aus Übung 1 wird jetzt so erweitert, dass auf dem Display die Stromstärke in der Einheit Ampere angegeben wird. Im Programm muss die Messspannung so umgerechnet werden, dass bei einem anliegenden Strom von 0 A eine Ausgangsspannung von 0,5*Vcc angezeigt wird (s. Eigenschaften).

Übung 2

Material

  • 1x  Arduino Uno
  • 1x  Steckernetzteil
  • 1x  Steckbrett
  • 1x  LCD, 2-zeilig
  • 1x  ACS712-20
  • div. Steckdrähte

 

Aufgaben

 

  • Baue die Schaltung nach Skizze auf.
  • Übertrage das Programm ACS_2.ino in den Editor und speichere es ab.
  • Starte das Programm.
  • Überprüfe mit Hilfe eines stromgeregelten Labornetzteils für unterschiedliche Stromstärken die angezeigten Messwerte.

 

Schaltskizze

s. Abbildung 1

Das Programm ACS_2.ino

Wie arbeitet das Programm ACS_2.ino?

In der Methode setup() wird das LCD initiiert und die Referenzspannung 5V aktiviert.

In der Methode loop() wird in Programmzeile 20 die Funktion acs712_20 gestartet. Über sie werden mittels einer FOR ... NEXT - Schleife 100 Einzelmessungen der am Eingang anliegenden Spannung und der Referenzspannung an der 5V-Buchse ausgeführt und aufsummiert (Programmzeilen 36 - 39). Die Referenzspannung wird auf Ucc/2 = 2.5 V berechnet.

 

Programmzeilen 41 - 43

Es wird der gemittelte Referenzspannungswert und der Ausgangsspannungswert an die Variable spannung_lcd im Hauptprogramm zurückgegeben. Der Korrekturfaktor von 0.06 wurde aus der aus dem "Ursprung" verschobenen linearen Funktion (Abb. 3) ermittelt und für eine nicht-symmetrische Ansteuerung optimiert.

 

Programmzeile 21 - 27

Das LCD wird gelöscht, der Cursor in die Position oben links gesetzt und dort der Text "I in A: " ausgegeben. Anschließend wird in der gleichen Zeile der errechnete Stromstärkewert mit vier Stellen hinter dem Komma ausgegeben und anschließend eine Pause von 1s eingelegt.

Die Variablen spg und spg_ref werden auf 0 zurückgesetzt. Da es sich um eine Endlosschleife handelt, fährt das Programm in Zeile 20 fort, ruft wiederum die Funktion acs712_20 auf und alles beginnt erneut von vorne.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf