Razmislimo o povezavi modula GY-273 s triosnim digitalnim kompasom Honeywell HMC5883L. To mikrovezje se lahko uporablja za magnetometrične meritve v navigaciji, če ni potrebna visoka merilna natančnost (z napako 1 … 2 stopinji in možnostjo kalibracije). Naprava je povezana prek vmesnika I2C.
Potrebno
- - digitalni kompas HMC5883;
- - Arduino;
- - prototipna plošča in povezovalne žice;
- - računalnik.
Navodila
Korak 1
To so glavne značilnosti magnetnega kompasa:
- 3-osni magnetno občutljiv senzor;
- 12-bitni ADC z ločljivostjo 2 mGs (miligausa);
- vgrajen samotestiranje;
- nizka delovna napetost in majhna poraba;
- digitalni vmesnik I2C;
- visoka stopnja glasovanja - do 160-krat na sekundo (čas ene meritve je približno 6 ms);
- natančnost določanja smeri je 1 °… 2 °;
- se lahko uporablja v močnih magnetnih poljih (do ± 8 Gauss).
Diagram za priključitev magnetnega senzorja HMC5883L na Arduino je prikazan na sliki. Je zelo kompakten in preprost, ker Dvožični vmesnik I2C je odličen, ker zahteva malo povezav. Lahko uporabite ploščo.
2. korak
Videti mora približno tako, kot je fotografija. Na vodila SCL in SDA bom priklopil tudi logični analizator za spremljanje izmenjave informacij med Arduino in modulom HMC5883. Ni obvezno.
3. korak
Kot prvo poznanstvo poskusimo prebrati identifikacijske registre 10 (0xA), 11 (0xB) in 12 (0xC) digitalnega kompasa HMC5883 in napišite takšno skico kot na sliki. Vsebuje podrobne komentarje.
4. korak
Signal, pridobljen z logičnim analizatorjem, bo prikazan na sliki.
Kaj to pomeni? Prvi bajt je naslov I2C, s katerim (glavna naprava, Arduino) vzpostavimo komunikacijo (visokih 7 bitov 0x1E) in način pisanja (nizki bit - 0x0); število je 0x3C. Drugi bajt je številka 0xA, ki smo jo zapisali za naslov 0x1E, in potrditveni bit senzorja HMC5883L, ki je pomožni. To je registrska številka, s katere bomo začeli brati podatke. S tem je zaključena prva transakcija. Naslednja se začne. Tretji bajt je zahteva za branje iz podrejene enote (najpomembnejši 7 bitov je naslov 0x1E, 8. bit je operacija branja 0x1; nastalo število je 0x3D). Zadnji 3 tri bajti so odziv pomožnika HMC5883L iz registrov 0xA, 0xB in 0xC.
Digitalni kompas HMC5883L se med neprekinjenim branjem premika po registrih samostojno. Tisti. ni treba (vendar ni prepovedano) vsakič natančno navesti primera. Če bi na primer namesto 0xA zapisali 0x3 in prebrali 10-krat, bi dobili vrednosti v 10 registrih, začenši od 3. do 12..
In kaj so te tri številke - 0x48, 0x34, 0x33? Ob ponovni uporabi podatkovnega lista za digitalni kompas HMC5883L bomo videli, da so to privzete vrednosti za tri identifikacijske registre.
5. korak
Če želite dobiti podatke digitalnega kompasa o magnetnem polju, morate prebrati registre od 3 do 8, tako kot beremo identifikacijske registre. Razlika je le v tem, da so podatki za vsako od treh osi X, Y in Z predstavljeni kot dvobajtna števila. Če jih pretvorimo v decimalna števila, dobimo navodila vzdolž vsake od treh osi.