Magnetsensor

By | 13. Februar 2017

Der HMC5883L ist ein Sensor mit dem die magnetische Flußdichte von Magnetfeldern in 3 Achsen gemessen werden kann. Dadurch kann man ihn – unter anderem – zur Richtungsbestimmung auf der Erde, also als Kompass, verwenden.

Die Feldlinien des Erdmagnetfeldes verlaufen nicht wie vielfach angenommen vom antarktischen zum arktischen Magnetpol. Sie entspringen vielmehr tief im Erdinneren der Südhalbkugel, treten an allen Orten südlich des magnetischen Äquators aus der Erdoberfläche aus, um über die Nordhalbkugel verteilt wieder in die Erdoberfläche einzutreten und weit ins Erdinnere abzutauchen. Die Ausrichtung eines Kompasses wird daher nicht durch die Magnetpole kontrolliert, sondern ausschließlich durch die Richtung des örtlichen Magnetfelds. Die Richtung des örtlichen Magnetfelds an der Erdoberfläche wiederum ist durch die ungleichmäßige Verteilung der Feldquellen im Erdinneren bestimmt und nicht durch die Lage der Pole. Obwohl also die Kompassnadel wegen der dipolähnlichen Gestalt des Gesamtfeldes generell in eine nördliche Richtung zeigt, weicht über große Teile der Erdoberfläche die örtliche Richtung des Magnetfeldes um 10° und mehr von der Richtung zum arktischen Magnetpol ab.

Die Abweichungen für den jeweiligen Standort können heute über verschiedene Internetseiten ermittelt werden. Für meinen Standort konnte ich über die Seite (http://www.gfz-potsdam.de/deklinationsrechner/) folgende werte ermitteln:
Dieser Deklinations-Wert (hier 2° 22´) muss nun noch in den Radient umgerechnet werden, um als Korrekturfaktor verwendet werden zu können. Das ergibt dann einen Wert von:

Miot diesen Grundlagen im Hinterkopf können wir nun mit dem Sensor-Baustein beginnen zu arbeiten. Beispielsweise lässt sich damit ein digitaler Kompass programmieren.

Dazu verwende ich das Board GY-271, auf dem das 3-Achsen Kompassmodul HMC5883L verbaut ist. Dieses Modul ist in der Lage, selbst bei schwachen Magnetfeldern Daten zu sammeln. Diese Daten werden in eine Differenzialspannung von 2,7V bis 6,5V Gleichstrom umgewandelt und auf 3 Achsen verteilt. Dabei werden Magnetfelder mit einer Genauigkeit von +/- 8 Gauss erkannt.

Aus dem Datenblatt ist ersichtlich, wie man das Modul an einen Microcontroller angeschlossen werden muss. Sie Abbildung auf der linken Seite.

 

 

Ebenso sind im Datenblatt die erforderlichen Register Adressen dokumentiert, in denen die Daten abgelegt sind:

Der folgende Programmcode liest die Daten aus..ohne sie aber spezifisch aufzubereiten:

Für die weitere Aufbereitung der Daten ist es wichtig zu wissen, wie diese in übliche “Formen” transformiert werden. Eine sehr gängige ist es, den Richtungswinkel darzustellen. Hierzu findet man auf einigen Webseiten folgende Formeln: