HMC5883L und Arduino 3-Achsen-Magnetometer

Das Tutorial zeigt, wie man ein digitales Magnetometer mit einem Arduino betreibt.

Das Beispiel verwendet die folgenden Elemente:

Anschließen des Sensors mit Arduino:

Das Modul kommuniziert über den beliebten I2C-Bus. Die Verbindung zum Arduino sollte also wie folgt erfolgen:

HMC5883L-Modul Arduino-Stift
VCC 5 V
Masse Masse
SCL A5
SDA A4

Diagramm der Verbindung des Magnetometers mit dem Arduino Uno.

Programm für Arduino

Im Beispiel wurde folgender Code verwendet:

  1. #include // I2C-Bibliothek
  2. #define address 0x1E // Adresse des HMC5883L-Moduls für I2C
  3. void setup () {
  4. Serial.begin (9600); // Serielle Kommunikation initialisieren
  5. Wire.begin (); // Modulinitialisierung
  6. // Stellen Sie den entsprechenden Sensormodus ein
  7. Wire.beginTransmission (Adresse); // offene Kommunikation
  8. Wire.write (0x02); // Wählen Sie das Modusregister
  9. Wire.write (0x00); // kontinuierlicher Messmodus
  10. Wire.endTransmission ();
  11. }
  12. Leere Schleife () {
  13. Ganzzahl x, y, z; // Variablen für drei Achsen
  14. // Setze die Adresse zum Lesen von Daten
  15. Wire.beginTransmission (Adresse);
  16. Wire.write (0x03); // Registerauswahl 3, MSB-Register der X-Achse
  17. Wire.endTransmission ();
  18. // Daten für jede Achse lesen, zwei Register für eine Achse
  19. Wire.requestFrom (Adresse, 6);
  20. if (6 <= Wire.verfügbar ()) {
  21. x = Wire.read () << 8; // MSB der X-Achse
  22. x | = Wire.read (); // LSB der X-Achse
  23. z = Wire.read () << 8; // MSB der Z-Achse
  24. mit | = Wire.read (); // LSB der Z-Achse
  25. y = Wire.read () << 8; // MSB der Y-Achse
  26. y | = Wire.read (); // LSB der Y-Achse
  27. }
  28. // Daten auf dem seriellen Monitor anzeigen
  29. Serial.print ("x:");
  30. Serial.print (x);
  31. Serial.print ("y:");
  32. Serial.print (y);
  33. Serial.print ("von:");
  34. Serial.println (z);
  35. Verzögerung (250); // Verzögerung zwischen den Messungen 250 ms
  36. }

Die Auswirkungen des Programms sind unten zu sehen:

Screenshot des seriellen Monitors.

Wir freuen uns auf die Zusammenarbeit mit Ihnen!