2019
HOME

Magnetfelder im Griff in ESP8266BASIC und
Hallsensor 49E
Ergänzung zum Buch: Messen, Steuern und Regeln mit Wifi und ESP-BASIC

Hall Sensor 49EEin Hallsensor oder eine Hallsonde reagiert auf ein Magnetfeld und gibt ein entsprechendes elektrisches Signal aus. Hall-Sonden sind fester Bestandteil in qualifizierten Physikpraktika.

Mit wenigen Zeilen lassen sich in ESP8266BASIC Messungen und Steuerungen mit dem € 0,19 Sensor 49E realisieren. Die Anwendungen liegen in den Bereichen Hobby, Ausbildung, Studium und Entwicklung.



Ein winziges Bauelement mit dem Aussehen eines einfachen Transistors enthält einen Hallsensor, sowie die komplette Elektronik, um ein einfaches analoges Signal an seinem Ausgang zu liefern. Die drei Anschlüsse von links nach rechts sind:

Vss (3,3 oder 5 Volt), Gnd (Masse) und der Ausgang Vout

Der Sensor liefert im neutralen Zustand, also ohne Magnetfeld, an seinem Ausgang etwa die halbe Betriebsspannung. An einem 10-Bit-Analogwandler entspricht dies praktisch dem Wert 497, möglicherweise der Namensgeber. Je nach magnetischer Polarität des umgebenden Magnetfeldes sinkt bzw. steigt die Spannung am Ausgang entsprechend, wobei ein linearer Zusammenhang zwischen der Ausgangsspannung U in Volt und der magnetischen Größe B in Tesla bzw. Gauß besteht. Der Umrechnungsfaktor ist laut Datenblatt etwa 1,9 mV/G.


Erster Test Nordpol Südpol


Die Überprüfung der Funktionalität des Sensors kann mit ESPBASIC und z. B. einem ESP8266 D1 Mini in fünf Zeilen erfolgen:

Textbox a
Timer 100,[tm]
[tm]
a = io(ai)
wait

Dabei ist der Ausgang Vout mit dem ADC-Eingang des ESP8266 verbunden. Vcc liegt an 3,3 Volt und GND an GND der Platine. Nach einem Save/Run sollte in der Textbox (Kapitel 2.8.2) im Browser etwa der Wert 497 erscheinen. Bei Annäherung eines Dauermagneten ändert sich dieser Wert je nach dem von welcher Richtung (vorne/hinten) und welche Polarität des Magnetfeldes am Sensor vorliegt. Ein meter a,0,1023 in der Zeile zwischen Textbox a und Timer zeigt zusätzlich die grüne Analoganzeige im Browser rechts neben der numerischen Anzeige.


Tesla Orgel Magnet-Ton


Mit einem Piezo-Beeper an Pin D8 des D1 Mini kann nun ein Magnetfeld proportionaler Ton erzeugt werden, so dass ein akustisches Feedback erfolgt. Mit Hilfe der PWM-Eigenschaften der GPIO am ESP8266 und dem ESPBASIC-Befehl pwmfreq (Kapitel 2.3) entsteht ein feldabhängiger Ton. Das Programm mit der Erweiterung ist nicht viel länger, es kommen nur zwei Zeilen hinzu.

Io(pwo,D8,127)
Textbox a
Timer 100,[tm]
[tm]
a = io(ai)
pwmfreq a
wait

Mit io(pwo,D8,127) erhält Pin D8 ein symmetrisches Rechtecksignal der vorgegebenen PWM-Frequenz. Alle 100 ms wird diese Frequenz so verändert, dass der Ton in seiner Frequenz dem Sensorwert des 49E entspricht, also mit etwa 497 Hz im neutralen Zustand tönt. Je nach äußerem B-Feld ändert sich dieser Ton entsprechend der Variablen a. Aufgrund der PWM-Spannung entspricht der arithmetische Mittelwert an Pin D8 nur der halben Betriebsspannung, so dass eine gelbe LED auch ohne Vorwiderstand parallel zum Beeper an den 1,65 Volt betrieben werden kann, um so auch ein optisches Feedback zu erhalten. Die Helligkeit ändert sich jedoch nicht, da sich das Tastverhältnis nicht ändert. Die Helligkeit entspricht hier dem festen  pwo-Wert 127. Soll die LED-Helligkeit dem Feld folgen, so ist dieser Wert mit a zu verknüpfen. Im Listing weiter unten ist eine automatische Stummschaltung (Automute) vorgesehen, die dann greift, wenn sich das Feld nicht mehr ändert.


Milli Tesla Meter Umrechnungen


Mit der Angabe 1,9 mV/G kann man den digitalen Messwert in einen magnetischen Messwert umrechnen. Um vom ADC-Wert a zu mT zu gelangen können folgende Schritte zum Ziel führen.

Ausgehend von einem Ruhewert von 497 wäre die Differenz dt des Messwertes zum Ruhewert ein Maß für das Magnetfeld. Bei einem 10-Bit-Wandler an 3,3 Volt entspricht ein Bit einer Auflösung von vpb = 3,3 V/210, oder 3,3V/1024. Multipliziert man diesen Wert mit dem aktuellen ADC-Wert, so erhält man die Differenzspannung in Volt V von der Ruhelage aus gesehen mit entsprechendem Vorzeichen. Durch Multiplikation mit 1000 errechnet sich diese Spannung in mV. Teilt man diese Spannung in mV durch den Umrechnungsfaktor 1,9 mV/G erhält man so den Messwert in der Einheit Gauß. Da 1 Tesla 10000 Gauß entspricht, erfolgt die Umrechnung auf Tesla durch Division mit 10000. Schließlich sollen mT (milli-Tesla) zur Anzeige kommen, die sich durch eine Multiplikation mit 1000 errechnen.

In ESPBASIC schreibt sich das dann kleinschrittig wie folgt:

...
dt = a – 497
vpb = 3.3/1024
V = dt * vpb
mV = V * 1000
G = mV/1.9
T = G/10000
mT = T * 1000
...

ESPBASIC unterscheidet bei Variablennamen zwischen Groß- und Kleinschreibung! Diese Umrechnung wäre natürlich auch mit einer einzigen Formel möglich, ist aber hier bewusst in mehrere Schritte aufgeteilt worden.

Mit entsprechendem Textfeld und Meter für die Variable mT lassen sich nun magnetische Felder mit dem Hallsensor in mT untersuchen. Sogar die Magneten von Handy-Klapphüllen liefern entsprechende Werte zwischen –60 und +60 mT.B eim Maker – neudeutsch für den "Copy-Paste-Möchte-Gern-Ingenieur" - kommt der 49E meist nur in digitalen Problemen zum Einsatz, um quasi als Schalter zu dienen oder Umdrehungen zu registrieren. Die folgenden Anwendungen gehen darüber hinaus.


Magnetfeld einer Spule


Mit der Hallsonde bzw. dem Hallsensor können physikalische Zusammenhänge einer Spule untersucht werden, um so zu überprüfen, ob die Angabe 1,9 mV/G mit experimentellen Werten näherungsweise übereinstimmt. Die Physik beschreibt in ihrem Teilgebet Magnetismus bzw. magnetisches Feld die magnetische Feldstärke mit dem Formelbuchstaben H in der Einheit Ampere pro Meter. Die Größe dieser Feldstärke im Innern einer Spule wird beeinflusst durch ihre Geometrie, der Windungszahl und dem Strom, der durch die Spule fließt. Bei eine Länge l und einem Durchmesser D gilt für eine lange Spule (l >> D) die folgende Gesetzmäßigkeit

Die Überprüfung soll mit einer vorhandenen kurzen Spule erfolgen, so dass Abweichungen zu erwarten sind. Das vorhandene Exemplar hat 1000 Windungen und einen Durchmesser von etwa 2,2 cm bei einer Länge von 3,5 cm – ist somit weit entfernt von idealen Verhältnissen, jedoch der Praxis ziemlich nah. Die Umrechnung zwischen Feldstärke H (Ursache) und dem tatsächlichen magnetischen Feld B in Tesla (Wirkung) erfolgt bei Luftspulen mit der Gleichung

Mit den obigen Angaben und einem gemessenem Strom von 250 mA an 5 Volt berechnet sich H zu 

und daraus

in der Theorie mit der Gleichung für eine lange Spule.

Der praktische Messwert mit dem 49E-Sensor in der Mitte der kurzen Spule betrug 6,6 mT und bei doppelter Spannung mit 10 Volt und resultierenden 500 mA entsprechend 13,6 mT. Der relative Fehler bezogen auf den theoretischen Wert errechnet sich zu 13%. Setzt man eine Gleichung für eine kurze Spule an, so ändert sich der Fehler in Richtung kleinerer Werte. Da die Spule auf einem quadratischen Körper gewickelt ist, könnte hier auch ein mittlerer Durchmesser D von 2,5 cm geltend gemacht werden, wobei sich der theoretische Wert auf 7,3 mT reduziert und der Fehler dann mit 9,6 % innerhalb der erwarteten Toleranz bleibt. Entsprechende Versuche mit langen Spulen könnten folgen.

Mit einem Eisenkern ändert sich das Magnetfeld in hohem Maße. In der Theorie kommt dann die Materialkonstante µr als Faktor in die Umrechnung von H nach B hinzu. Auf diese Art könnten magnetische Materialien anhand ihrer Permeabilität bzw. magnetischen Leitfähigkeit µr bestimmt werden. Auch durch Verschiebung des Eisenkerns oder der Luftspule ändert sich das Magnetfeld, wodurch magnetische Wegaufnehmer möglich werden.


Magnetischer Wegaufnehmer


Eine Spule benötigt elektrischen Strom, um ein magnetisches Feld zu erzeugen. Dauermagneten liefern dieses Feld ohne ständige Energiezufuhr und könnten somit in einfachen magnetischen Wegaufnehmern zum Einsatz kommen. Ein kleiner Dauermagnet eignet sich um einen Messbereich von etwa 2 bis 12 mm Wegstrecke mit dem Hallsensor 49E zu untersuchen.

Den Zusammenhang zwischen Abstand und Magnetfeld erhält man, wenn das Magnetfeld bei unterschiedlichen Abständen des Magneten bestimmt wird. Mit Messschieber oder Lineal und dem 49E-Hallsensor im mT-Betrieb erhält man den entsprechenden Zusammenhang.

B=f(s)

Dieser Zusammenhang entspricht in etwa dem Abstands- Gesetz. Besser passt jedoch ein Polynom 3. Ordnung, aus der Regression mit der Trendlinie in Excel. Setzt man in die Gleichung probehalber einen Weg von 10 mm ein, so berechnet die Gleichung einen Wert von 7,208 mT.

Um den Weg bzw. den Abstand zwischen Sonde und Magnet bei bekanntem Magnetfeld zu bestimmen, wird die Abhängigkeit des Weges vom Magnetfeld benötigt. Die Gleichung könnte entsprechend nach x umgestellt werden. Ohne mathematische Klimmzüge lässt sich aber auch das Diagramm mit vertauschten Achsen darstellen und damit eine neue Regression mit Excels Trendlinie durchführen.

s=f(B)Der Abstand s zum Magneten ist dann auf der Y-Achse, das Magnetfeld B auf der X-Achse aufgetragen. Es ergibt sich der interessante Zusammenhang
y = 40,219.x-0,707 bei einer potenziellen Trendlinie bzw. Regression, die zwar nicht so exakt passt, wie ein Polynom 6. Ordnung, dafür aber handlicher erscheint. Die Umsetzung in ESPBASIC gestaltet sich wiederum recht einfach.

Die Messung findet im Browser statt und zeigt den Abstand in Millimetern, das Magnetfeld in mT und den ADC-Wert von A/D-Wandler. Der Nullpunkt, also die Kalibrierung im feldfreien Zustand erfolgt komfortabel mit einem Tara-Button, der die Variable t0 mit dem aktuellen Messwert belegt und damit eine Nullanzeige erfolgt. Die Umrechnung vom Digitalwert a nach mT ist weiter oben dargestellt und erläutert. Die Zeile s = 40.219*ta^-0.707 berechnet dann aus diesem Wert ohne Vorzeichen (abs) mittels gefundener Gleichung den Abstand s.

Das Listing ist etwas länger als 5 Zeilen, aber dennoch übersichtlich und vor allen Dingen schnell anzupassen. Zudem sind einige Bemerkungen eingefügt, die Defizite in den Bereichen Kurz- und Langzeitgedächtnis ausgleichen sollen.

Print "49E Hall Abstand <hr>"
'Vcc-Gnd-VOut (vlnr vorn)
'B=f(s)
'y = = -0.032*x^3 + 1.1959*x^2 - 15.381*x + 73.428
's=f(B)
'y = 40.219*x^-0.707

t0 = 496
o = 0.0
Beeper = D8
Textbox s
meter s,0,10
html " s in mm <br>"
Textbox tm
meter tm,-50,50
html " B in mT <br>"
Textbox a
Meter a,0,1023
html " adc <br>"
Button "Tara", [tara]
Timer 300,[tm]
Timercb 1000,[cb]
Wait

[tm]
a = io(ai)
pwmfreq a
'Umrechnung a --> mT
dt = a - t0
vpb = 3.3/1024
u = dt * vpb
mv = u * 1000
g = mv/1.9
t = g/10000
tm = t* 1000' mT
ta = abs(tm)
s = 40.219*ta^-0.707
wait

[cb]
If a = o then 
 io(po,D8,0)
Else
 Io(pwo,D8,127)
Endif
o = a
Return

[tara]
t0=a
wait

Die Routine bei [cb] sorgt dafür, dass der Beeper verstummt, wenn sich das Feld nicht ändert. Dies ist das weiter oben angedeutete Automute.

Benutzt man die ESPBASIC Routinen zur Gauge aus Messen Steuern Regeln mit Smartphone und Tablet, so erhält man eine Hallsonden-Anzeige im Thermometerlook. Der angezeigte Wert ist der praktische Messwert im Inneren der oben genannten kurzen Spule an 10 V bei 500 mA durch 1000 Windungen.


Schon in dem im Herbst 2017 erschienenen Messen Steuern Regeln mit Smartphone und Tablet war ESPBASIC ein Thema. Durch die vertiefende Beschäftigung mit der Referenz zu dieser Sprache entstand ein eigenes Buch zu ESP8266-BASIC, da sich ganz neue Perspektiven bei der Umsetzung von Ideen ergaben und diese in dieser Form weiter gereicht werden sollte.

Weitere Bücher
Weitere Software
.
Startseite Bücher Software Digital RTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt