Spisu treści:

Pomiar pola magnetycznego za pomocą HMC5883 i Particle Photon: 4 kroki
Pomiar pola magnetycznego za pomocą HMC5883 i Particle Photon: 4 kroki

Wideo: Pomiar pola magnetycznego za pomocą HMC5883 i Particle Photon: 4 kroki

Wideo: Pomiar pola magnetycznego za pomocą HMC5883 i Particle Photon: 4 kroki
Wideo: Moduł czujnika pola magnetycznego 3 osie HMC5883L 2024, Lipiec
Anonim
Image
Image

HMC5883 to cyfrowy kompas przeznaczony do wykrywania pola magnetycznego o niskim polu. To urządzenie ma szeroki zakres pola magnetycznego +/-8 Oe i częstotliwość wyjściową 160 Hz. Czujnik HMC5883 zawiera automatyczne sterowniki paska rozmagnesowania, anulowanie przesunięcia i 12-bitowy przetwornik ADC, który zapewnia dokładność kierunku kompasu od 1° do 2°. Wszystkie moduły I²C Mini są zaprojektowane do pracy przy 5VDC.

W tym samouczku wyjaśnimy szczegółowo działanie HMC5883 z fotonem cząstek. Particle photon to tablica ułatwiająca wysyłanie i odbieranie danych ze strony internetowej, czyli wspierająca najbardziej podstawową funkcję Internetu Rzeczy (IoT).

Krok 1: Wymagany sprzęt:

Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt

Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:

1. HMC5883

2. Cząsteczkowy foton

3. Kabel I2C

4. Osłona I2C dla fotonu cząsteczkowego

Krok 2: Podłączenie sprzętu:

Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu

Sekcja dotycząca podłączania sprzętu zasadniczo wyjaśnia połączenia przewodów wymagane między czujnikiem a fotonem cząstek. Zapewnienie prawidłowych połączeń jest podstawową koniecznością podczas pracy na dowolnym systemie o pożądanej mocy. Tak więc wymagane połączenia są następujące:

HMC5883 będzie działał przez I2C. Oto przykładowy schemat okablowania, pokazujący, jak okablować każdy interfejs czujnika.

Po wyjęciu z pudełka, płyta jest skonfigurowana do interfejsu I2C, dlatego zalecamy korzystanie z tego podłączenia, jeśli jesteś agnostykiem. Wszystko czego potrzebujesz to cztery przewody!

Wymagane są tylko cztery połączenia Vcc, Gnd, SCL i SDA, które są połączone za pomocą kabla I2C.

Połączenia te są pokazane na powyższych zdjęciach.

Krok 3: Kod do pomiaru natężenia pola magnetycznego:

Kod do pomiaru natężenia pola magnetycznego
Kod do pomiaru natężenia pola magnetycznego

Zacznijmy teraz od kodu cząstek.

Podczas korzystania z modułu czujnika z Arduino dołączamy bibliotekę application.h oraz spark_wiring_i2c.h. Biblioteka "application.h" oraz spark_wiring_i2c.h zawiera funkcje ułatwiające komunikację i2c pomiędzy czujnikiem a cząsteczką.

Cały kod cząstek podano poniżej dla wygody użytkownika:

#włączać

#włączać

// HMC5883 I2C adres to 0x1E(30)

#define Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

pusta konfiguracja()

{

// Ustaw zmienną

Particle.variable("i2cdevice", "HMC5883");

Particle.variable("xMag", xMag);

Particle.variable("yMag", yMag);

Particle.variable("zMag", zMag);

// Zainicjuj komunikację I2C jako MASTER

Wire.początek();

// Zainicjuj komunikację szeregową, ustaw szybkość transmisji = 9600

Serial.początek(9600);

// Rozpocznij transmisję I2C

Wire.beginTransmisja(Addr);

// Wybierz konfigurację rejestru A

Wire.write(0x00);

// Ustaw normalną konfigurację pomiaru, szybkość wyprowadzania danych = 0,75 Hz

Wire.write(0x60);

// Zatrzymaj transmisję I2C

Wire.endTransmission();

// Rozpocznij transmisję I2C

Wire.beginTransmisja(Addr);

// Wybierz rejestr trybu

Wire.write(0x02);

// Ustaw pomiar ciągły

Wire.write(0x00);

// Zatrzymaj transmisję I2C

Wire.endTransmission();

opóźnienie(300);

}

pusta pętla()

{

dane int bez znaku[6];

// Rozpocznij transmisję I2C

Wire.beginTransmisja(Addr);

// Wybierz rejestr danych

Wire.write(0x03);

// Zatrzymaj transmisję I2C

Wire.endTransmission();

// Żądaj 6 bajtów danych

Wire.requestFrom(Addr, 6);

// Odczytaj 6 bajtów danych

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

if(Przewód.dostępny() == 6)

{

dane[0] = Przewód.odczyt();

dane[1] = Drut.odczyt();

dane[2] = Przewód.odczyt();

dane[3] = Przewód.odczyt();

dane[4] = Przewód.odczyt();

dane[5] = Wire.read();

}

opóźnienie(300);

// Konwertuj dane

xMag = ((dane[0] * 256) + dane[1]);

jeśli(xMag > 32767)

{

xMag -= 65536;

}

zMag = ((dane[2] * 256) + dane[3]);

jeśli(zMag > 32767)

{

zMag -= 65536;

}

yMag = ((dane[4] * 256) + dane[5]);

if(yMag > 32767)

{

yMag -= 65536;

}

// Dane wyjściowe do pulpitu nawigacyjnego

Particle.publish("Pole magnetyczne w osi X: ", String(xMag));

opóźnienie (1000);

Particle.publish("Pole magnetyczne w osi Y: ", String(yMag));

opóźnienie (1000);

Particle.publish("Pole magnetyczne w osi Z: ", String(zMag));

opóźnienie (1000);

}

Funkcja Particle.variable() tworzy zmienne do przechowywania danych wyjściowych czujnika, a funkcja Particle.publish() wyświetla dane wyjściowe na pulpicie nawigacyjnym witryny.

Wyjście czujnika pokazano na powyższym obrazku w celach informacyjnych.

Krok 4: Aplikacje:

Aplikacje
Aplikacje

HMC5883 to wieloukładowy moduł do montażu powierzchniowego przeznaczony do wykrywania pola magnetycznego niskiego pola z interfejsem cyfrowym do zastosowań takich jak niedrogie kompasy i magnetometria. Jego dokładność i precyzja na poziomie od jednego do dwóch stopni umożliwia nawigację pieszych i aplikacje LBS.

Zalecana: