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 Arduino nano.
Krok 1: Wymagany sprzęt:
Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:
1. HMC5883
2. Arduino Nano
3. Kabel I2C
4. Tarcza I2C dla Arduino Nano
Krok 2: Podłączenie sprzętu:
Sekcja podłączania sprzętu zasadniczo wyjaśnia połączenia okablowania wymagane między czujnikiem a arduino nano. 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 Arduino do pomiaru natężenia pola magnetycznego:
Zacznijmy teraz od kodu Arduino.
Korzystając z modułu czujnika z Arduino, dołączamy bibliotekę Wire.h. Biblioteka "Wire" zawiera funkcje ułatwiające komunikację i2c pomiędzy czujnikiem a płytką Arduino.
Cały kod Arduino podano poniżej dla wygody użytkownika:
#włączać
// HMC5883 I2C adres to 0x1E(30)
#define Addr 0x1E
pusta konfiguracja()
{
// 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
int xMag = ((dane[0] * 256) + dane[1]);
int zMag = ((dane[2] * 256) + dane[3]);
int yMag = ((dane[4] * 256) + dane[5]);
// Dane wyjściowe do monitora szeregowego
Serial.print("Pole magnetyczne w osi X: ");
Serial.println(xMag);
Serial.print("Pole magnetyczne w osi Y: ");
Serial.println(yMag);
Serial.print("Pole magnetyczne w osi Z: ");
Serial.println(zMag);
opóźnienie(300);
}
W bibliotece przewodów Wire.write() i Wire.read() są używane do zapisywania poleceń i odczytywania wyjścia czujnika. Kolejna część kodu ilustruje odczyt wyjścia czujnika.
// Odczyt 6 bajtów danych // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if(Wire.available() == 6) { data[0] = Wire.read(); dane[1] = Drut.odczyt(); dane[2] = Przewód.odczyt(); dane[3] = Przewód.odczyt(); dane[4] = Przewód.odczyt(); dane[5] = Wire.read(); }
Serial.print() i Serial.println() służą do wyświetlania wyjścia czujnika na monitorze szeregowym Arduino IDE.
Wyjście czujnika pokazano na powyższym obrazku.
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 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 Particle Photon: 4 kroki
Pomiar pola magnetycznego za pomocą HMC5883 i Particle Photon: 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 ciśnienia za pomocą CPS120 i Arduino Nano: 4 kroki
Pomiar ciśnienia przy użyciu CPS120 i Arduino Nano: CPS120 to wysokiej jakości i niedrogi pojemnościowy czujnik ciśnienia bezwzględnego zw pełni skompensowaną mocą wyjściową. Zużywa bardzo mniej energii i składa się z bardzo małego czujnika mikroelektromechanicznego (MEMS) do pomiaru ciśnienia. Oparta na sigma-delta
Samouczek: Jak zrobić alarm drzwi za pomocą MC-18 Alarm czujnika magnetycznego: 3 kroki
Samouczek: Jak zrobić alarm drzwi za pomocą alarmu czujnika magnetycznego przełącznika MC-18: Cześć chłopaki, zrobię samouczek na temat alarmu czujnika przełącznika magnetycznego MC-18, który działa w trybie normalnie zamkniętym. Ale najpierw pozwól, że wyjaśnię ci w skrócie, co to znaczy normalnie blisko. Istnieją dwa rodzaje trybu, normalnie otwarty i normalnie zamknięty
3-osiowy czujnik pola magnetycznego: 10 kroków (ze zdjęciami)
3-osiowy czujnik pola magnetycznego: bezprzewodowe systemy przesyłania energii są na dobrej drodze do zastąpienia konwencjonalnego ładowania przewodowego. Począwszy od maleńkich implantów biomedycznych, aż po bezprzewodowe ładowanie ogromnych pojazdów elektrycznych. Integralną częścią badań nad mocą bezprzewodową jest