Kako Spojiti Digitalni Kompas HMC5883 Na Arduino

Sadržaj:

Kako Spojiti Digitalni Kompas HMC5883 Na Arduino
Kako Spojiti Digitalni Kompas HMC5883 Na Arduino

Video: Kako Spojiti Digitalni Kompas HMC5883 Na Arduino

Video: Kako Spojiti Digitalni Kompas HMC5883 Na Arduino
Video: Трехосевой цифровой компас HMC5883L и Arduino 2024, Maj
Anonim

Razmotrimo povezanost modula GY-273 s troosovinskim digitalnim kompasom Honeywell HMC5883L. Ovaj mikrovez se može koristiti za magnetometrijska mjerenja, u navigaciji, ako nije potrebna velika preciznost mjerenja (s greškom od 1 … 2 stupnja i mogućnošću kalibracije). Uređaj je povezan preko I2C sučelja.

Digitalni kompas HMC5883
Digitalni kompas HMC5883

Potrebno

  • - digitalni kompas HMC5883;
  • - Arduino;
  • - prototip ploče i spojne žice;
  • - računar.

Instrukcije

Korak 1

Ovo su glavne karakteristike magnetnog kompasa:

- 3-osni magnetno osjetljivi senzor;

- 12-bitni ADC rezolucije 2 mGs (miligausa);

- ugrađeno samotestiranje;

- nizak radni napon i mala potrošnja;

- digitalni interfejs I2C;

- visoka stopa anketiranja - do 160 puta u sekundi (vreme jednog merenja je oko 6 ms);

- tačnost određivanja smjera je 1 °… 2 °;

- može se koristiti u jakim magnetskim poljima (do ± 8 Gauss-a).

Dijagram povezivanja magnetskog senzora HMC5883L na Arduino prikazan je na slici. Vrlo je kompaktan i jednostavan, jer Dvožično I2C sučelje je sjajno jer zahtijeva malo veza. Možete koristiti ploču za grijanje.

Spajanje digitalnog kompasa HMC5883 na Arduino
Spajanje digitalnog kompasa HMC5883 na Arduino

Korak 2

To bi trebalo izgledati poput fotografije. Također ću povezati logički analizator na SCL i SDA magistrale kako bih nadzirao razmjenu informacija između Arduina i HMC5883 modula. Nije obavezno.

HMC5883 digitalni kompas povezan na Arduino na ploči za ploču
HMC5883 digitalni kompas povezan na Arduino na ploči za ploču

Korak 3

Kao prvo poznavanje, pokušajmo pročitati identifikacijske registre 10 (0xA), 11 (0xB) i 12 (0xC) digitalnog kompasa HMC5883 i napišimo takvu skicu kao na slici. Sadrži detaljne komentare.

Skica koja čita identifikacijske registre HMC5883
Skica koja čita identifikacijske registre HMC5883

Korak 4

Signal dobiven logičkim analizatorom bit će prikazan na slici.

Šta to znači? Prvi bajt je I2C adresa s kojom mi (glavni uređaj, Arduino) uspostavljamo komunikaciju (visokih 7 bita 0x1E) i način pisanja (mali bit - 0x0); broj je 0x3C. Drugi bajt je broj 0xA, koji smo napisali za adresiranje 0x1E i bit za potvrdu sa senzora HMC5883L, koji je slave. To je registarski broj s kojeg ćemo započeti čitanje podataka. Ovim je zaključena prva transakcija. Sljedeći počinje. Treći bajt je zahtjev za čitanje od pomoćnog uređaja (najznačajniji 7 bitova su adresa 0x1E, 8. bit je operacija čitanja 0x1; rezultirajući broj je 0x3D). Posljednja 3 tri bajta su odgovor od pomoćnog uređaja HMC5883L iz registara 0xA, 0xB i 0xC.

Digitalni kompas HMC5883L se kreće kroz registre neovisno tijekom neprekidnog čitanja. Oni. nije potrebno (ali nije zabranjeno) svaki put navesti slučaj. Na primjer, ako bismo umjesto 0xA napisali 0x3 i pročitali 10 puta, dobili bismo vrijednosti u 10 registara, počevši od 3. do 12..

A koja su ova tri broja - 0x48, 0x34, 0x33? Ponovnim korištenjem podatkovnog lista za digitalni kompas HMC5883L, vidjet ćemo da su to zadane vrijednosti za tri identifikacijska registra.

Vremenski dijagram razmjene I2C s digitalnim kompasom HMC5883
Vremenski dijagram razmjene I2C s digitalnim kompasom HMC5883

Korak 5

Da biste dobili podatke digitalnog kompasa o magnetskom polju, morate pročitati registre od 3 do 8, baš kao što čitamo registre za identifikaciju. Jedina razlika je u tome što su podaci za svaku od tri osi X, Y i Z predstavljeni kao dvobajtni brojevi. Pretvarajući ih u decimalne brojeve, dobivamo upute duž svake od tri osi.

Preporučuje se: