0. Komponenty i oprogramowanie wymagane dla cyfrowego kompasu GY-271 / GY-273 Magnetometr Compas

Wymagane komponenty:

{Produkt: 2000} {Produkt: 456}
lub:
{Produkt: 1603}

I. Jak korzystać z kompasu cyfrowego

Moduły cyfrowego kompasu lub magnetometru kompasu działają na zasadzie pomiaru pola magnetycznego w trzech osiach, a dzięki temu pomiarowi określają orientację urządzenia w odniesieniu do pola magnetycznego Ziemi. Czujnik HMC5883L / QMC5883L to 3-osiowy magnetometr, dzięki czemu możemy odczytać składowe obecnego pola magnetycznego, w ten sposób znając kierunek pola magnetycznego Ziemi możemy obliczyć orientację względem północy magnetycznej Ziemi , o ile nasz czujnik nie jest wystawiony na działanie żadnego zewnętrznego pola magnetycznego ani żadnego metalowego obiektu, który zmienia pole magnetyczne Ziemi.

W naszym katalogu dostępne są dwie opcje kompasu cyfrowego: HMC5883, starsza wersja i QMC5883L, nowsza wersja.

Nie ma dużej różnicy. HMC5883L jest produkowany przez firmę Honeywell. ale ponieważ produkcja wkrótce się zatrzyma, użyliśmy podobnego modułu kompasu, QMC5883L.

QMC5883L jest produkowany przez chińską firmę, która uzyskała autoryzację na produkcję HMC5883L od Honeywell i przemianowała ją na QMC5883L. Więc QMC5883L i HMC5883L są w zasadzie takie same, mają tę samą konstrukcję sprzętową. Tylko twój rekord jest trochę inny. Musimy tylko trochę zmienić oprogramowanie.

Aby uzyskać więcej informacji o produktach lub ich opisach technicznych, wejdź na naszą stronę internetową Sklep Solectro.

II. Eksperymentalne procedury

Połączenie

Moduł zasilany jest bezpośrednio z Arduino , więc nie potrzebujemy zewnętrznego zasilania. Będziesz musiał przylutować szpilki lub nagłówki, aby użyć go na płycie prototypowej lub kablach DuPont. W tym przykładzie podłączymy moduł do Arduino UNO przez I2C, jak pokazano na poniższym obrazku:

Kołek czujnika

Przypnij przez Arduino UNO

GND

GND

VCC

3,3 V.

CS

3,3 V.

SDA

A4 (SDA)

SCL

A5 (SCL)

W naszych przykładach musimy pobrać odpowiednie biblioteki.

Dla pierwszego modułu , GY-273 HMC5883, musimy pobrać bibliotekę opracowaną przez Jeffa Rowberga, bibliotekę można pobrać tutaj :

Ta biblioteka współpracuje z dodatkową biblioteką do komunikacji I2C, można ją również znaleźć na tym samym githubie, co poprzednia biblioteka.

W tym przykładzie weźmiemy odczyty z HMC5883L, otrzymamy składowe X, Y i Z pola magnetycznego.

Kod

Otwórz nowy szkic i wklej następujący przykładowy kod:

#include „Wire.h”

#include „I2Cdev.h”

#include „HMC5883L.h”

Magnetometr HMC5883L;

int16_t mx, my, mz;

void setup () {

Serial.begin (9600);

Serial.println ("Inicjalizacja magnetometru ...");

// Inicjalizujemy komunikację I2C i magnetometr

Wire.begin ();

magnetometer.initialize ();

}

void loop () {

// Z magnetometru otrzymujemy składowe pola magnetycznego

magnetometer.getHeading (& mx, & my, & mz);

Serial.print ("mx:");

Serial.print (mx);

Serial.print ("\ tmy:");

Serial.print (my);

Serial.print ("\ tmz:");

Serial.println (mz);

opóźnienie (100);

}

Jak zawsze, otwórz monitor szeregowy z menu Narzędzia, aby wyświetlić wartości.

W przypadku drugiego modułu , GY-271 QMC5883L, musimy pobrać bibliotekę Mechasolution, którą znajdziesz tutaj.

Otwórz nowy szkic i wklej następujący przykładowy kod, a na monitorze szeregowym zobaczysz również sytuację.

#include <Wire.h>

#include <MechaQMC5883.h>

MechaQMC5883 qmc;

void setup () {

Wire.begin ();

Serial.begin (9600);

qmc.init ();

//qmc.setMode(Mode_Continuous,ODR_200Hz,RNG_2G,OSR_256);

}

void loop () {

int x, y, z;

qmc.read (& x, & y, & z);

Serial.print ("x:");

Serial.print (x);

Serial.print ("y:");

Serial.print (y);

Serial.print ("z:");

Serial.print (z);

Serial.println ();

opóźnienie (100);

}