Seiten

Mittwoch, 3. Februar 2016

Arduino Kompass

In diesem Post geht es darum, wie man das HMC5883L Magnetometer mit dem Arduino als Kompass verwendet.

Die Hardware

Zum Bauen des Kompass benötigt man das HMC5883L Magnetometer (hier auf Amazon) und einen Arduino/Mikrocontroller mit I2C, beispielsweise einen preiswerten Arduino Nano Klon (hier auf Amazon). Leider konnte ich kein Magnetometer finden, welches schon verlötet war, weshalb, auch bei dem Verlinktem, ein Lötkolben (meine Lötstation auf amzon.de) notwendig ist.

Die Verkabelung mit dem Arduino ist simpel, da die Kontakte auf der Rückseite beschriftet sind. SDA muss mit dem SDA Pin des Arduino verbunden werden, SCL mit SCL, GND mit dem Ground und entweder VCC mit +3.3V oder VCC_+5V mit +5V.

Der Sensor sollte direkt ins Breadboard gesteckt werden, da er so immer gleich liegt. Ansonsten könnte es zu einer Verfälschung der Messung kommen.

Der Sketch

Zum Auslesen des Sensors, für den es auch ein Modell von Adafruit gibt, hat Adafruit eine extra Bibliothek erstellt, welche jedoch mit allen HMC5883L Modulen funktioniert. Diese kann man direkt über den Library Manager nachladen (Adafruit HMC5883 Unified). Zusätzlich benötigt man noch die Adafruit Unified Sensor Bibliothek, welche man sich auch über den Library Manager herunterladen kann.

Wenn man nach dem Download der Bibliotheken auf Datei > Beispiele > Adafruit HMC5883 Unified klickt, sieht man einen passenden Beispielsketch für den Sensor, welchen man einfach nur auf den Arduino hochladen muss.

Hier der Sketch zum Durchlesen:
Wenn man nun die serielle Konsole öffnet, bekommt man laufend die aktuelle Gradzahl (0 - 360) angezeigt. Diese kann man nun zum Zeichnen eines graphischen Kompass verwenden, oder aber in einem Sketch weiterverwenden, beispielsweise zur Orientierung eines Roboterautos.

Keine Kommentare:

Kommentar veröffentlichen

Mit dem Veröffentlichen eines Kommentars erklären Sie sich mit unserer Datenschutzerklärung einverstanden.
https://michaelsarduino.blogspot.de/p/datenschutzerklarung.html