So Verbinden Sie Den Digitalen Kompass HMC5883 Mit Arduino

Inhaltsverzeichnis:

So Verbinden Sie Den Digitalen Kompass HMC5883 Mit Arduino
So Verbinden Sie Den Digitalen Kompass HMC5883 Mit Arduino

Video: So Verbinden Sie Den Digitalen Kompass HMC5883 Mit Arduino

Video: So Verbinden Sie Den Digitalen Kompass HMC5883 Mit Arduino
Video: Трехосевой цифровой компас HMC5883L и Arduino 2024, November
Anonim

Betrachten wir die Verbindung des Moduls GY-273 mit dem dreiachsigen digitalen Kompass HMC5883L von Honeywell. Diese Mikroschaltung kann für magnetometrische Messungen in der Navigation verwendet werden, wenn keine hohe Messgenauigkeit erforderlich ist (mit einem Fehler von 1 … 2 Grad und der Möglichkeit der Kalibrierung). Das Gerät wird über die I2C-Schnittstelle angeschlossen.

Digitaler Kompass HMC5883
Digitaler Kompass HMC5883

Notwendig

  • - Digitaler Kompass HMC5883;
  • -Arduino;
  • - Prototypenplatine und Anschlussdrähte;
  • - Computer.

Anleitung

Schritt 1

Dies sind die Hauptmerkmale eines Magnetkompasses:

- Magnetisch empfindlicher 3-Achsen-Sensor;

- 12-Bit-ADC mit einer Auflösung von 2 mGs (Milligauss);

- eingebauter Selbsttest;

- niedrige Betriebsspannung und geringer Verbrauch;

- digitale Schnittstelle I2C;

- hohe Abfragerate - bis zu 160 mal pro Sekunde (die Zeit einer Messung beträgt ca. 6 ms);

- die Genauigkeit der Richtungsbestimmung beträgt 1 °… 2 °;

- kann in starken Magnetfeldern (bis zu ± 8 Gauss) verwendet werden.

Das Diagramm zum Anschluss des Magnetsensors HMC5883L an den Arduino ist in der Abbildung dargestellt. Es ist sehr kompakt und einfach, weil Die Zweidraht-I2C-Schnittstelle ist großartig, da sie nur wenige Verbindungen erfordert. Sie können ein Steckbrett verwenden.

Anschließen des digitalen Kompass HMC5883 an den Arduino
Anschließen des digitalen Kompass HMC5883 an den Arduino

Schritt 2

Es sollte ungefähr so aussehen wie auf dem Foto. Ich werde auch einen Logikanalysator an die SCL- und SDA-Busse anschließen, um den Informationsaustausch zwischen dem Arduino und dem HMC5883-Modul zu überwachen. Es ist nicht obligatorisch.

HMC5883 digitaler Kompass verbunden mit Arduino auf Steckbrett
HMC5883 digitaler Kompass verbunden mit Arduino auf Steckbrett

Schritt 3

Als erste Bekanntschaft versuchen wir, die Identifikationsregister 10 (0xA), 11 (0xB) und 12 (0xC) des digitalen Kompasses HMC5883 auszulesen und eine solche Skizze wie in der Abbildung zu schreiben. Es ist mit ausführlichen Kommentaren versehen.

Skizze zum Lesen der Identifikationsregister des HMC5883
Skizze zum Lesen der Identifikationsregister des HMC5883

Schritt 4

Das mit dem Logikanalysator erhaltene Signal sieht wie in der Abbildung gezeigt aus.

Was bedeutet das? Das erste Byte ist die I2C-Adresse, mit der wir (das Master-Gerät, Arduino) die Kommunikation aufbauen (High 7 Bits 0x1E) und den Schreibmodus (Low Bit - 0x0); die Zahl ist 0x3C. Das zweite Byte ist die Zahl 0xA, die wir auf die Adresse 0x1E geschrieben haben und das Bestätigungsbit vom HMC5883L-Sensor, der der Slave ist. Dies ist die Registernummer, ab der wir mit dem Lesen von Daten beginnen. Damit ist die erste Transaktion abgeschlossen. Der nächste beginnt. Das dritte Byte ist eine Leseanforderung vom Slave (die höchstwertigen 7 Bits sind die Adresse 0x1E, das 8. Bit ist die Leseoperation 0x1; die resultierende Zahl ist 0x3D). Die letzten 3 Bytes sind die Antwort des HMC5883L-Slaves aus den Registern 0xA, 0xB bzw. 0xC.

Der digitale Kompass HMC5883L bewegt sich beim kontinuierlichen Lesen selbstständig durch die Register. Jene. es ist nicht notwendig (aber nicht verboten), den Fall jedes Mal anzugeben. Wenn wir beispielsweise anstelle von 0xA 0x3 schreiben und 10 Mal lesen würden, erhalten wir Werte in 10 Registern, beginnend vom 3. bis zum 12.

Und was sind diese drei Zahlen - 0x48, 0x34, 0x33? Anhand des Datenblatts für den digitalen Kompass HMC5883L werden wir sehen, dass dies die Standardwerte für die drei Identifikationsregister sind.

Timing-Diagramm des I2C-Austauschs mit dem digitalen Kompass HMC5883
Timing-Diagramm des I2C-Austauschs mit dem digitalen Kompass HMC5883

Schritt 5

Um die digitalen Kompassdaten über das Magnetfeld zu erhalten, müssen Sie die Register 3 bis 8 lesen, genau wie wir die Identifikationsregister lesen. Der einzige Unterschied besteht darin, dass die Daten für jede der drei Achsen X, Y und Z als Doppelbyte-Zahlen dargestellt werden. Wenn wir sie in Dezimalzahlen umwandeln, erhalten wir Richtungen entlang jeder der drei Achsen.

Empfohlen: