Uvažujme o prepojení modulu GY-273 s trojosým digitálnym kompasom Honeywell HMC5883L. Tento mikroobvod je možné použiť na magnetometrické merania, v navigácii, ak sa nevyžaduje vysoká presnosť merania (s chybou 1 … 2 stupne a možnosťou kalibrácie). Zariadenie je pripojené cez rozhranie I2C.
Nevyhnutné
- - Digitálny kompas HMC5883;
- - Arduino;
- - prototypová doska a spojovacie drôty;
- - počítač.
Inštrukcie
Krok 1
Toto sú hlavné vlastnosti magnetického kompasu:
- 3-osový magneticky citlivý snímač;
- 12-bitový ADC s rozlíšením 2 mGs (miligauss);
- zabudovaný autotest;
- nízke prevádzkové napätie a nízka spotreba;
- digitálne rozhranie I2C;
- vysoká rýchlosť dopytovania - až 160-krát za sekundu (čas jedného merania je približne 6 ms);
- presnosť určenia smeru je 1 ° … 2 °;
- môže byť použitý v silných magnetických poliach (do ± 8 Gauss).
Schéma pripojenia magnetického snímača HMC5883L k Arduinu je znázornená na obrázku. Je to veľmi kompaktné a jednoduché, pretože Dvojvodičové rozhranie I2C je vynikajúce, pretože vyžaduje niekoľko pripojení. Môžete použiť nepájivú dosku.
Krok 2
Malo by to vyzerať asi ako na fotografii. Pripojím tiež logický analyzátor k zberniciam SCL a SDA na sledovanie výmeny informácií medzi Arduino a modulom HMC5883. Nie je to povinné.
Krok 3
Ako prvý známy si skúsme prečítať identifikačné registre 10 (0xA), 11 (0xB) a 12 (0xC) digitálneho kompasu HMC5883 a napíšeme taký náčrt ako na obrázku. Poskytuje sa s podrobnými komentármi.
Krok 4
Signál získaný logickým analyzátorom bude taký, ako je znázornené na obrázku.
Čo to znamená? Prvým bajtom je adresa I2C, s ktorou (hlavné zariadenie, Arduino) nadväzujeme komunikáciu (vysokých 7 bitov 0x1E) a režim zápisu (nízky bit - 0x0); číslo je 0x3C. Druhým bajtom je číslo 0xA, ktoré sme napísali na adresu 0x1E, a potvrdzovací bit zo snímača HMC5883L, ktorý je podradeným zariadením. Toto je registračné číslo, z ktorého začneme čítať údaje. Týmto sa uzatvára prvá transakcia. Začína sa ďalší. Tretím bajtom je požiadavka na čítanie od slave (najvýznamnejších 7 bitov je adresa 0x1E, 8. bitom je operácia čítania 0x1; výsledné číslo je 0x3D). Posledné 3 tri bajty sú odpoveďou slave HMC5883L z registrov 0xA, 0xB a 0xC.
Digitálny kompas HMC5883L sa počas nepretržitého čítania pohybuje v registroch nezávisle. Tých. nie je potrebné (ale nie zakázané) zakaždým prípad špecifikovať. Napríklad ak by sme namiesto 0xA napísali 0x3 a čítali 10-krát, dostali by sme hodnoty v 10 registroch, počnúc od 3. do 12. bodu.
A aké sú tieto tri čísla - 0x48, 0x34, 0x33? Pri ďalšom použití údajového listu pre digitálny kompas HMC5883L uvidíme, že ide o predvolené hodnoty pre tri identifikačné registre.
Krok 5
Ak chcete získať údaje digitálneho kompasu v magnetickom poli, musíte čítať registre 3 až 8, rovnako ako čítame identifikačné registre. Jediný rozdiel je v tom, že údaje pre každú z troch osí X, Y a Z sú prezentované ako dvojbajtové čísla. Prevodom na desatinné čísla dostaneme smery pozdĺž každej z troch osí.