Wacha tuchunguze unganisho la moduli ya GY-273 na Honeywell HMC5883L dira ya dijiti tatu. Microcircuit hii inaweza kutumika kwa vipimo vya magnetometric, katika urambazaji, ikiwa usahihi wa kipimo cha juu hauhitajiki (na kosa la digrii 1 … 2 na uwezekano wa upimaji). Kifaa kimeunganishwa kupitia kiolesura cha I2C.
Muhimu
- - Dira ya dijiti HMC5883;
- - Arduino;
- - bodi ya mfano na waya za kuunganisha;
- - kompyuta.
Maagizo
Hatua ya 1
Hizi ndio sifa kuu za dira ya sumaku:
- sensorer 3-axis nyeti nyeti;
- 12-bit ADC na azimio la 2 mG (milligauss);
- kujaribiwa kwa kujipima;
- voltage ya chini ya uendeshaji na matumizi ya chini;
- interface ya dijiti I2C;
- kiwango cha juu cha kupigia kura - hadi mara 160 kwa sekunde (wakati wa kipimo kimoja ni karibu 6 ms);
- usahihi wa kuamua mwelekeo ni 1 °… 2 °;
- inaweza kutumika katika uwanja wenye nguvu wa sumaku (hadi ± 8 Gauss).
Mchoro wa kuunganisha sensa ya sumaku ya HMC5883L kwa Arduino imeonyeshwa kwenye takwimu. Ni ngumu sana na rahisi, kwa sababu Muunganisho wa waya mbili I2C ni mzuri kwa sababu inahitaji unganisho machache. Unaweza kutumia ubao wa mkate.
Hatua ya 2
Inapaswa kuonekana kama picha. Pia nitaunganisha analyzer ya mantiki na mabasi ya SCL na SDA kufuatilia ubadilishaji wa habari kati ya Arduino na moduli ya HMC5883. Sio lazima.
Hatua ya 3
Kama marafiki wa kwanza, wacha tujaribu kusoma rejista za kitambulisho 10 (0xA), 11 (0xB) na 12 (0xC) ya dira ya dijiti HMC5883 na andika mchoro kama huo kwenye takwimu. Imetolewa na maoni ya kina.
Hatua ya 4
Ishara iliyopatikana na analyzer ya mantiki itakuwa kama inavyoonyeshwa kwenye mfano.
Inamaanisha nini? Baiti ya kwanza ni anwani ya I2C ambayo sisi (kifaa kikuu, Arduino) huanzisha mawasiliano (juu 7 bits 0x1E), na hali ya kuandika (chini kidogo - 0x0); nambari ni 0x3C. Baiti ya pili ni nambari 0xA, ambayo tuliandika kushughulikia 0x1E na uthibitisho kidogo kutoka kwa sensorer ya HMC5883L, ambayo ni mtumwa. Hii ndio nambari ya kujiandikisha ambayo tutaanza kusoma data. Hii inahitimisha shughuli ya kwanza. Ifuatayo huanza. Baiti ya tatu ni ombi la kusoma kutoka kwa mtumwa (bits 7 muhimu zaidi ni anwani 0x1E, kidogo ya 8 ni shughuli ya kusoma 0x1; nambari inayosababisha ni 0x3D). Baiti tatu za mwisho ni majibu kutoka kwa mtumwa wa HMC5883L kutoka kwa rejista 0xA, 0xB, na 0xC, mtawaliwa.
Dira ya dijiti HMC5883L inapita kupitia rejista kwa uhuru wakati wa kusoma kwa kuendelea. Wale. sio lazima (lakini sio marufuku) kutaja kesi kila wakati. Kwa mfano, ikiwa badala ya 0xA tungeandika 0x3 na kusoma mara 10, tutapata maadili katika rejista 10, kuanzia tarehe 3 hadi 12.
Na hizi nambari tatu ni nini - 0x48, 0x34, 0x33? Kutumia karatasi ya data ya dira ya dijiti ya HMC5883L tena, tutaona kuwa hizi ndio maadili ya msingi kwa sajili tatu za kitambulisho.
Hatua ya 5
Ili kupata data ya dira ya dijiti kwenye uwanja wa sumaku, unahitaji kusoma rejista 3 hadi 8, kama vile tunasoma sajili za kitambulisho. Tofauti pekee ni kwamba data ya kila moja ya shoka tatu X, Y na Z zinawasilishwa kama nambari mbili-ka. Kuwageuza kuwa nambari za desimali, tunapata mwelekeo kando ya kila shoka tatu.