HMC5883 сандық компасын Arduino-ға қалай қосуға болады

Мазмұны:

HMC5883 сандық компасын Arduino-ға қалай қосуға болады
HMC5883 сандық компасын Arduino-ға қалай қосуға болады

Бейне: HMC5883 сандық компасын Arduino-ға қалай қосуға болады

Бейне: HMC5883 сандық компасын Arduino-ға қалай қосуға болады
Бейне: hmc5883l arduino compass,magnetometer sensor,compass navigation"Arduino Project for beginners 2024, Мамыр
Anonim

GY-273 модулінің Honeywell HMC5883L үш білікті цифрлы компаспен байланысын қарастырайық. Бұл микросұлбаны магнитометриялық өлшеу үшін, навигация кезінде, егер өлшеудің жоғары дәлдігі қажет болмаса (қателік 1 … 2 градус болса және калибрлеу мүмкіндігі бар болса) пайдалануға болады. Құрылғы I2C интерфейсі арқылы қосылған.

Сандық компас HMC5883
Сандық компас HMC5883

Қажетті

  • - HMC5883 сандық компасы;
  • - Ардуино;
  • - прототип тақтасы және жалғаушы сымдар;
  • - компьютер.

Нұсқаулық

1-қадам

Магниттік компастың негізгі ерекшеліктері:

- 3 осьтік магниттік сезімтал сенсор;

- 2 мГс (миллигаус) рұқсатымен 12-разрядты ADC;

- кіріктірілген өзін-өзі тексеру;

- төмен жұмыс кернеуі және аз тұтыну;

- сандық интерфейс I2C;

- жоғары дауыс беру жылдамдығы - секундына 160 есеге дейін (бір өлшеу уақыты шамамен 6 мс құрайды);

- бағытты анықтау дәлдігі 1 °… 2 °;

- күшті магнит өрістерінде қолдануға болады (± 8 Гауссқа дейін).

HMC5883L магниттік сенсорын Arduino-ға қосу схемасы суретте көрсетілген. Бұл өте ықшам және қарапайым, өйткені Екі сымды I2C интерфейсі өте жақсы, себебі ол бірнеше қосылымды қажет етеді. Сіз нан тақтасын пайдалана аласыз.

HMC5883 сандық компасын Arduino-ға қосу
HMC5883 сандық компасын Arduino-ға қосу

2-қадам

Бұл фотосуретке ұқсас болуы керек. Arduino мен HMC5883 модулі арасындағы ақпарат алмасуды бақылау үшін SCL және SDA автобустарына логикалық анализаторды қосамын. Бұл міндетті емес.

Arduino-ға нан тақтасында қосылған HMC5883 сандық компасы
Arduino-ға нан тақтасында қосылған HMC5883 сандық компасы

3-қадам

Алғашқы танысу ретінде HMC5883 сандық компасының 10 (0xA), 11 (0xB) және 12 (0xC) сәйкестендіру регистрлерін оқып, суреттегідей эскизді жазып көрейік. Оған егжей-тегжейлі түсініктемелер берілген.

HMC5883 сәйкестендіру регистрлерін оқудың эскизі
HMC5883 сәйкестендіру регистрлерін оқудың эскизі

4-қадам

Логикалық анализатормен алынған сигнал суретте көрсетілгендей болады.

Бұл нені білдіреді? Бірінші байт - біз (негізгі құрылғы, Arduino) байланыс орнататын I2C мекен-жайы (жоғары 7 бит 0x1E), және жазу режимі (төменгі бит - 0x0); саны 0x3C. Екінші байт - 0xA саны, біз 0x1E мекен-жайы үшін жаздық және құл болып табылатын HMC5883L сенсорынан растау биті. Бұл деректерді оқи бастайтын регистр нөмірі. Осымен бірінші транзакция аяқталады. Келесі басталады. Үшінші байт - бұл құлдың оқуы туралы сұрау (ең маңызды 7 бит - 0x1E адресі, 8-ші бит - 0x1 оқу әрекеті; алынған сан 0x3D). Соңғы 3 үш байт - бұл HMC5883L құлынан сәйкесінше 0xA, 0xB және 0xC регистрлерінен алынған жауап.

Сандық компас HMC5883L үздіксіз оқу кезінде регистрлер арқылы дербес қозғалады. Анау. әр істі көрсету қажет емес (бірақ тыйым салынбайды). Мысалы, егер 0xA орнына біз 0x3 жазып, 10 рет оқысақ, 3-тен 12-ге дейін 10 регистрде мәндер аламыз.

0x48, 0x34, 0x33 деген үш сан қандай? HMC5883L цифрлық циркульге арналған деректер парағын қайтадан қолданып, бұл үш сәйкестендіру регистрінің әдепкі мәндері екенін көреміз.

HMC5883 сандық компасымен I2C алмасуының уақыттық сызбасы
HMC5883 сандық компасымен I2C алмасуының уақыттық сызбасы

5-қадам

Магнит өрісіне цифрлық циркуль туралы мәліметтерді алу үшін, біз идентификациялық регистрлерді оқығандай 3-тен 8-ге дейін регистрлерді оқу керек. Жалғыз айырмашылық - X, Y және Z үш осьтерінің әрқайсысы үшін мәліметтер екі байт сандар түрінде ұсынылған. Оларды ондық сандарға айналдырып, біз үш осьтің әрқайсысы бойынша бағыттар аламыз.

Ұсынылған: