Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
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:
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:
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:
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:
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:
Pomiar przyspieszenia za pomocą ADXL345 i Particle Photon: 4 kroki
Pomiar przyspieszenia przy użyciu ADXL345 i Particle Photon: ADXL345 to mały, cienki, bardzo energooszczędny, 3-osiowy akcelerometr z pomiarem o wysokiej rozdzielczości (13-bitów) do ±16 g. Cyfrowe dane wyjściowe są sformatowane jako 16-bitowe uzupełnienie do dwójek i są dostępne przez interfejs cyfrowy I2 C. Mierzy
Pomiar pola magnetycznego za pomocą HMC5883 i Raspberry Pi: 4 kroki
Pomiar pola magnetycznego za pomocą HMC5883 i Raspberry Pi: 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
Pomiar pola magnetycznego za pomocą HMC5883 i Arduino Nano: 4 kroki
Pomiar pola magnetycznego za pomocą HMC5883 i Arduino Nano: 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
Pomiar wilgotności za pomocą HYT939 i Particle Photon: 4 kroki
Pomiar wilgotności przy użyciu HYT939 i Particle Photon: HYT939 jest cyfrowym czujnikiem wilgotności, który działa na protokole komunikacyjnym I2C. Wilgotność jest kluczowym parametrem w systemach medycznych i laboratoriach, więc aby osiągnąć te cele, spróbowaliśmy połączyć HYT939 z raspberry pi. I
Pomiar przyspieszenia za pomocą H3LIS331DL i Particle Photon: 4 kroki
Pomiar akceleracji przy użyciu H3LIS331DL i Particle Photon: H3LIS331DL, jest 3-osiowym akcelerometrem liniowym o niskiej mocy i wysokiej wydajności należącym do rodziny „nano”, z cyfrowym interfejsem szeregowym I²C. H3LIS331DL ma wybieraną przez użytkownika pełną skalę ±100g/±200g/±400g i jest w stanie mierzyć przyspieszenia w