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.
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.
U-I-Kennlinie des ACS712-20 zur Bestimmung der 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.
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).
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.