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.
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.
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.
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.
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.
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.