Cum Se Conectează Busola Digitală HMC5883 La Arduino

Cuprins:

Cum Se Conectează Busola Digitală HMC5883 La Arduino
Cum Se Conectează Busola Digitală HMC5883 La Arduino

Video: Cum Se Conectează Busola Digitală HMC5883 La Arduino

Video: Cum Se Conectează Busola Digitală HMC5883 La Arduino
Video: hmc5883l arduino compass,magnetometer sensor,compass navigation"Arduino Project for beginners 2024, Noiembrie
Anonim

Să luăm în considerare conexiunea modulului GY-273 cu busola digitală Honeywell HMC5883L cu trei axe. Acest microcircuit poate fi utilizat pentru măsurători magnetometrice, în navigație, dacă nu este necesară o precizie ridicată a măsurării (cu o eroare de 1 … 2 grade și posibilitatea calibrării). Dispozitivul este conectat prin interfața I2C.

Compas digital HMC5883
Compas digital HMC5883

Necesar

  • - Busolă digitală HMC5883;
  • - Arduino;
  • - placă prototip și fire de conectare;
  • - calculator.

Instrucțiuni

Pasul 1

Acestea sunt principalele caracteristici ale unei busole magnetice:

- senzor magnetic cu 3 axe;

- ADC pe 12 biți cu o rezoluție de 2 mGs (miligauss);

- autotest încorporat;

- tensiune de funcționare scăzută și consum redus;

- interfață digitală I2C;

- rata de votare ridicată - de până la 160 de ori pe secundă (timpul unei măsurători este de aproximativ 6 ms);

- precizia determinării direcției este de 1 ° … 2 °;

- poate fi utilizat în câmpuri magnetice puternice (până la ± 8 Gauss).

Diagrama pentru conectarea senzorului magnetic HMC5883L la Arduino este prezentată în figură. Este foarte compact și simplu, deoarece Interfața I2C cu două fire este excelentă, deoarece necesită puține conexiuni. Puteți utiliza o placă de calcul.

Conectarea busolei digitale HMC5883 la Arduino
Conectarea busolei digitale HMC5883 la Arduino

Pasul 2

Ar trebui să arate ca fotografia. Voi conecta, de asemenea, un analizor logic la magistralele SCL și SDA pentru a monitoriza schimbul de informații între Arduino și modulul HMC5883. Nu este obligatoriu.

Busolă digitală HMC5883 conectată la Arduino pe panou
Busolă digitală HMC5883 conectată la Arduino pe panou

Pasul 3

Ca prim cunoștință, să încercăm să citim registrele de identificare 10 (0xA), 11 (0xB) și 12 (0xC) ale busolei digitale HMC5883 și să scriem o schiță ca în figură. Acesta este furnizat cu comentarii detaliate.

Schiță citind registrele de identificare ale HMC5883
Schiță citind registrele de identificare ale HMC5883

Pasul 4

Semnalul obținut cu analizorul logic va fi așa cum se arată în ilustrație.

Ce înseamnă? Primul octet este adresa I2C cu care noi (dispozitivul master, Arduino) stabilim comunicația (7 biti 0x1E) și modul de scriere (bit mic - 0x0); numărul este 0x3C. Al doilea octet este numărul 0xA, pe care l-am scris pentru a adresa 0x1E și bitul de confirmare de la senzorul HMC5883L, care este sclavul. Acesta este numărul de registru din care vom începe să citim date. Aceasta încheie prima tranzacție. Urmează următoarea. Al treilea octet este o cerere de citire de la sclav (cei mai semnificativi 7 biți sunt adresa 0x1E, al 8-lea bit este operația de citire 0x1; numărul rezultat este 0x3D). Ultimii 3 trei octeți sunt răspunsul de la sclavul HMC5883L de la registrele 0xA, 0xB și, respectiv, 0xC.

Busola digitală HMC5883L se deplasează prin registre independent în timpul citirii continue. Acestea. nu este necesar (dar nu interzis) specificarea cazului de fiecare dată. De exemplu, dacă în loc de 0xA am scrie 0x3 și am citi de 10 ori, am obține valori în 10 registre, începând de la 3 până la 12.

Și care sunt aceste trei numere - 0x48, 0x34, 0x33? Folosind din nou foaia de date pentru busola digitală HMC5883L, vom vedea că acestea sunt valorile implicite pentru cele trei registre de identificare.

Diagrama de sincronizare a schimbului I2C cu busola digitală HMC5883
Diagrama de sincronizare a schimbului I2C cu busola digitală HMC5883

Pasul 5

Pentru a obține datele compasului digital pe câmpul magnetic, trebuie să citiți registrele de la 3 la 8, la fel cum citim registrele de identificare. Singura diferență este că datele pentru fiecare dintre cele trei axe X, Y și Z sunt prezentate ca numere cu doi octeți. Transformându-le în numere zecimale, obținem direcții de-a lungul fiecăreia dintre cele trei axe.

Recomandat: