Jak Podłączyć Cyfrowy Kompas HMC5883 Do Arduino?

Spisu treści:

Jak Podłączyć Cyfrowy Kompas HMC5883 Do Arduino?
Jak Podłączyć Cyfrowy Kompas HMC5883 Do Arduino?

Wideo: Jak Podłączyć Cyfrowy Kompas HMC5883 Do Arduino?

Wideo: Jak Podłączyć Cyfrowy Kompas HMC5883 Do Arduino?
Wideo: Трехосевой цифровой компас HMC5883L и Arduino 2024, Listopad
Anonim

Rozważmy połączenie modułu GY-273 z trójosiowym kompasem cyfrowym Honeywell HMC5883L. Ten mikroukład może być używany do pomiarów magnetometrycznych, w nawigacji, jeśli nie jest wymagana wysoka dokładność pomiaru (z błędem 1 … 2 stopni i możliwością kalibracji). Urządzenie podłącza się poprzez interfejs I2C.

Kompas cyfrowy HMC5883
Kompas cyfrowy HMC5883

Niezbędny

  • - Kompas cyfrowy HMC5883;
  • - Arduino;
  • - płytka prototypowa i przewody połączeniowe;
  • - komputer.

Instrukcje

Krok 1

Oto główne cechy kompasu magnetycznego:

- 3-osiowy czujnik magnetyczny;

- 12-bitowy ADC o rozdzielczości 2 mGs (miligauss);

- wbudowany autotest;

- niskie napięcie robocze i niskie zużycie;

- cyfrowy interfejs I2C;

- wysoka częstotliwość odpytywania - do 160 razy na sekundę (czas jednego pomiaru to ok. 6 ms);

- dokładność wyznaczania kierunku wynosi 1°… 2°;

- może być stosowany w silnych polach magnetycznych (do ± 8 Gauss).

Schemat podłączenia czujnika magnetycznego HMC5883L do Arduino pokazano na rysunku. Jest bardzo kompaktowy i prosty, ponieważ Dwuprzewodowy interfejs I2C jest świetny, ponieważ wymaga niewielu połączeń. Możesz użyć płytki do krojenia chleba.

Podłączanie kompasu cyfrowego HMC5883 do Arduino
Podłączanie kompasu cyfrowego HMC5883 do Arduino

Krok 2

Powinno wyglądać jak na zdjęciu. Podłączę również analizator stanów logicznych do magistral SCL i SDA w celu monitorowania wymiany informacji między Arduino a modułem HMC5883. Nie jest to obowiązkowe.

Kompas cyfrowy HMC5883 podłączony do Arduino na płytce stykowej
Kompas cyfrowy HMC5883 podłączony do Arduino na płytce stykowej

Krok 3

Jako pierwszy znajomy spróbujmy odczytać rejestry identyfikacyjne 10 (0xA), 11 (0xB) i 12 (0xC) kompasu cyfrowego HMC5883 i napisać taki szkic jak na rysunku. Jest opatrzony szczegółowymi komentarzami.

Szkic odczytujący rejestry identyfikacyjne HMC5883
Szkic odczytujący rejestry identyfikacyjne HMC5883

Krok 4

Sygnał uzyskany przez analizator stanów logicznych będzie taki, jak pokazano na ilustracji.

Co to znaczy? Pierwszy bajt to adres I2C, z którym (urządzenie master, Arduino) nawiązujemy komunikację (high 7 bitów 0x1E), oraz tryb zapisu (low bit - 0x0); liczba to 0x3C. Drugi bajt to liczba 0xA, którą napisaliśmy do adresu 0x1E oraz bit potwierdzenia z czujnika HMC5883L, który jest urządzeniem podrzędnym. Jest to numer rejestru, od którego zaczniemy odczytywanie danych. Na tym kończy się pierwsza transakcja. Rozpoczyna się następny. Trzeci bajt to żądanie odczytu od urządzenia podrzędnego (najbardziej znaczące 7 bitów to adres 0x1E, ósmy bit to operacja odczytu 0x1; wynikowa liczba to 0x3D). Ostatnie 3 trzy bajty to odpowiedź z urządzenia podrzędnego HMC5883L odpowiednio z rejestrów 0xA, 0xB i 0xC.

Kompas cyfrowy HMC5883L porusza się niezależnie po rejestrach podczas ciągłego odczytu. Te. nie jest konieczne (ale nie zabronione) każdorazowe określanie przypadku. Przykładowo, gdybyśmy zamiast 0xA zapisali 0x3 i odczytali 10 razy, otrzymalibyśmy wartości w 10 rejestrach, zaczynając od 3 do 12.

A czym są te trzy liczby - 0x48, 0x34, 0x33? Korzystając ponownie z arkusza danych kompasu cyfrowego HMC5883L, zobaczymy, że są to wartości domyślne dla trzech rejestrów identyfikacyjnych.

Schemat czasowy wymiany I2C z kompasem cyfrowym HMC5883
Schemat czasowy wymiany I2C z kompasem cyfrowym HMC5883

Krok 5

Aby uzyskać dane z kompasu cyfrowego na polu magnetycznym, należy odczytać rejestry od 3 do 8, tak jak czytamy rejestry identyfikacyjne. Jedyna różnica polega na tym, że dane dla każdej z trzech osi X, Y i Z są prezentowane jako liczby dwubajtowe. Konwertując je na liczby dziesiętne, otrzymujemy kierunki wzdłuż każdej z trzech osi.

Zalecana: