Le të shqyrtojmë lidhjen e modulit GY-273 me busullën digjitale Honeywell HMC5883L me tre boshte. Ky mikro qark mund të përdoret për matje magnetometrike, në lundrim, nëse nuk kërkohet një saktësi e lartë e matjes (me një gabim prej 1 … 2 gradë dhe mundësinë e kalibrimit). Pajisja është e lidhur përmes ndërfaqes I2C.
E nevojshme
- - Busull dixhital HMC5883;
- - Arduino;
- - bordi prototip dhe telat lidhës;
- - kompjuter.
Udhëzimet
Hapi 1
Këto janë tiparet kryesore të një busull magnetik:
- Sensori i ndjeshëm magnetik me 3 boshte;
- ADC 12 bit me rezolucion prej 2 mGs (miligaus);
- vetë-test i integruar;
- tension i ulët operativ dhe konsum i ulët;
- ndërfaqja dixhitale I2C;
- shkallë e lartë e votimit - deri në 160 herë në sekondë (koha e një matjeje është rreth 6 ms);
- saktësia e përcaktimit të drejtimit është 1 °… 2 °;
- mund të përdoret në fusha të forta magnetike (deri në ± 8 Gaus).
Diagrami për lidhjen e sensorit magnetik HMC5883L me Arduino tregohet në figurë. Shtë shumë kompakte dhe e thjeshtë, sepse Ndërfaqja dy tela I2C është e shkëlqyeshme sepse kërkon pak lidhje. Mund të përdorni një tavë bukë.
Hapi 2
Duhet të duket diçka si fotografia. Unë gjithashtu do të lidh një analizues logjik me autobusët SCL dhe SDA për të monitoruar shkëmbimin e informacionit midis modulit Arduino dhe HMC5883. Nuk është e detyrueshme.
Hapi 3
Si njohje e parë, le të përpiqemi të lexojmë regjistrat e identifikimit 10 (0xA), 11 (0xB) dhe 12 (0xC) të busullës dixhitale HMC5883 dhe të shkruajmë një skicë të tillë si në figurë. Shtë dhënë me komente të hollësishme.
Hapi 4
Sinjali i marrë me analizuesin logjik do të jetë siç tregohet në ilustrim.
Çfarë do të thotë? Bajti i parë është adresa I2C me të cilën ne (pajisja kryesore, Arduino) vendosim komunikimin (7 bitë të lartë 0x1E), dhe mënyrën e shkrimit (bit i ulët - 0x0); numri është 0x3C. Byti i dytë është numri 0xA, të cilin e kemi shkruar për të adresuar 0x1E dhe bitin e konfirmimit nga sensori HMC5883L, i cili është skllavi. Ky është numri i regjistrit nga i cili do të fillojmë të lexojmë të dhëna. Kjo përfundon transaksionin e parë. Fillon tjetri. Byti i tretë është një kërkesë leximi nga skllavi (7 bitët më domethënës janë adresa 0x1E, biti i 8-të është operacioni i leximit 0x1; numri që rezulton është 0x3D). 3 tre bajtët e fundit janë përgjigja nga skllavi HMC5883L nga regjistrat përkatësisht 0xA, 0xB dhe 0xC.
Busulla dixhitale HMC5883L lëviz nëpër regjistra në mënyrë të pavarur gjatë leximit të vazhdueshëm. Ata. nuk është e nevojshme (por jo e ndaluar) të specifikohet çështja çdo herë. Për shembull, nëse në vend të 0xA do të shkruanim 0x3 dhe do të lexonim 10 herë, do të merrnim vlera në 10 regjistra, duke filluar nga 3-ti në 12-të.
Dhe cilët janë këta tre numra - 0x48, 0x34, 0x33? Duke përdorur përsëri fletën e të dhënave për busullën dixhitale HMC5883L, do të shohim se këto janë vlerat e paracaktuara për tre regjistrat e identifikimit.
Hapi 5
Për të marrë të dhënat e busullës dixhitale në fushën magnetike, duhet të lexoni regjistrat 3 deri në 8, ashtu si lexojmë regjistrat e identifikimit. Dallimi i vetëm është se të dhënat për secilën nga tre boshtet X, Y dhe Z paraqiten si numra dy bajtësh. Shndërrimi i tyre në numra dhjetorë, ne marrim drejtime përgjatë secilës prej tre akseve.