Mõelgem GY-273 mooduli ühendamisele kolmeteljelise digitaalse kompassiga Honeywell HMC5883L. Seda mikrolülitust saab kasutada magnetomeetriliste mõõtmiste jaoks, navigeerimisel, kui suurt mõõtetäpsust pole vaja (veaga 1 … 2 kraadi ja kalibreerimisvõimalusega). Seade on ühendatud I2C liidese kaudu.
Vajalik
- - digitaalne kompass HMC5883;
- - Arduino;
- - plaadi ja ühendusjuhtmete prototüüp;
- - arvuti.
Juhised
Samm 1
Need on magnetilise kompassi peamised omadused:
- 3-teljeline magnetiliselt tundlik andur;
- 12-bitine ADC eraldusvõimega 2 mGs (milligausi);
- sisseehitatud enesekontroll;
- madal tööpinge ja väike tarbimine;
- digitaalne liides I2C;
- kõrge valimissagedus - kuni 160 korda sekundis (ühe mõõtmise aeg on umbes 6 ms);
- suuna määramise täpsus on 1 °… 2 °;
- saab kasutada tugevates magnetväljades (kuni ± 8 Gaussi).
Skeem HMC5883L magnetanduri ühendamiseks Arduinoga on näidatud joonisel. See on väga kompaktne ja lihtne, sest Kahe juhtmega I2C liides on suurepärane, kuna see nõuab vähe ühendusi. Võite kasutada leivaplaati.
2. samm
See peaks välja nägema umbes selline nagu foto. Ühendan loogikaanalüsaatori ka SCL- ja SDA-siilidega, et jälgida Arduino ja HMC5883 mooduli vahelist teabevahetust. See pole kohustuslik.
3. samm
Esimese tutvusena proovime lugeda digitaalse kompassi HMC5883 identifitseerimisregistrid 10 (0xA), 11 (0xB) ja 12 (0xC) ning kirjutada selline skeem nagu joonisel. See on varustatud üksikasjalike kommentaaridega.
4. samm
Loogikaanalüsaatoriga saadud signaal on selline, nagu on näidatud joonisel.
Mida see tähendab? Esimene bait on I2C aadress, millega me (põhiseade, Arduino) loome ühenduse (kõrge 7 bitti 0x1E), ja kirjutusrežiim (madal bit - 0x0); arv on 0x3C. Teine bait on number 0xA, mille kirjutasime aadressile 0x1E ja kinnitusbiti andurilt HMC5883L, mis on ori. See on registrinumber, millest alustame andmete lugemist. See lõpetab esimese tehingu. Järgmine algab. Kolmas bait on orja lugemispäring (kõige olulisemad 7 bitti on aadress 0x1E, 8. bitti on lugemisoperatsioon 0x1; saadud arv on 0x3D). Viimased kolm kolme baiti on vastus HMC5883L-alamalt vastavalt registritest 0xA, 0xB ja 0xC.
Digitaalne kompass HMC5883L liigub pideva lugemise ajal registritest sõltumatult. Need. juhtumit pole vaja iga kord täpsustada (kuid pole keelatud). Näiteks kui 0xA asemel kirjutaksime 0x3 ja loeksime 10 korda, siis saaksime väärtused 10 registrisse, alustades 3.-12.
Ja mis need kolm numbrit on - 0x48, 0x34, 0x33? Kasutades uuesti HMC5883L digitaalse kompassi andmelehte, näeme, et need on kolme identifitseerimisregistri vaikeväärtused.
5. samm
Digitaalse kompassi andmete saamiseks magnetväljale peate lugema registrid 3 kuni 8, täpselt nagu me loeme identifitseerimisregistrid. Ainus erinevus on see, et kõigi kolme telje X, Y ja Z andmed esitatakse kahebaidiste numbritena. Teisendades need kümnendarvudeks, saame juhised piki kolme telge.