Raqamli Kompas HMC5883 Ni Arduino-ga Qanday Ulash Mumkin

Mundarija:

Raqamli Kompas HMC5883 Ni Arduino-ga Qanday Ulash Mumkin
Raqamli Kompas HMC5883 Ni Arduino-ga Qanday Ulash Mumkin

Video: Raqamli Kompas HMC5883 Ni Arduino-ga Qanday Ulash Mumkin

Video: Raqamli Kompas HMC5883 Ni Arduino-ga Qanday Ulash Mumkin
Video: Трехосевой цифровой компас HMC5883L и Arduino 2024, May
Anonim

GY-273 modulining Honeywell HMC5883L uch o'qli raqamli kompas bilan ulanishini ko'rib chiqamiz. Ushbu mikrosxemadan magnitometrik o'lchovlar uchun, navigatsiyada, agar yuqori o'lchov aniqligi talab etilmasa (1 … 2 darajali xato va kalibrlash imkoniyati bilan) foydalanish mumkin. Qurilma I2C interfeysi orqali ulangan.

Raqamli kompas HMC5883
Raqamli kompas HMC5883

Kerakli

  • - HMC5883 raqamli kompas;
  • - Arduino;
  • - prototip taxtasi va ulanish simlari;
  • - kompyuter.

Ko'rsatmalar

1-qadam

Magnit kompasning asosiy xususiyatlari:

- 3 o'qli magnit sezgir datchik;

- 2 mGs (milligauss) o'lchamlari bilan 12-bitli ADC;

- o'rnatilgan o'z-o'zini sinash;

- past ish kuchlanishi va kam iste'mol;

- raqamli interfeys I2C;

- ovoz berishning yuqori darajasi - sekundiga 160 martagacha (bitta o'lchov vaqti taxminan 6 milodiy);

- yo'nalishni aniqlashning aniqligi 1 °… 2 °;

- kuchli magnit maydonlarda foydalanish mumkin (± 8 gaussgacha).

HMC5883L magnit sensorini Arduino-ga ulash sxemasi rasmda ko'rsatilgan. Bu juda ixcham va sodda, chunki Ikki simli I2C interfeysi juda yaxshi, chunki u ozgina ulanishni talab qiladi. Siz non taxtasidan foydalanishingiz mumkin.

HMC5883 raqamli kompasini Arduino-ga ulash
HMC5883 raqamli kompasini Arduino-ga ulash

2-qadam

Bu fotosuratga o'xshash bo'lishi kerak. Arduino va HMC5883 moduli o'rtasidagi ma'lumot almashinuvini nazorat qilish uchun SCL va SDA avtobuslariga mantiqiy analizatorni ham ulayman. Bu shart emas.

Arduino-ga non plitasida ulangan HMC5883 raqamli kompas
Arduino-ga non plitasida ulangan HMC5883 raqamli kompas

3-qadam

Dastlabki tanish sifatida HMC5883 raqamli kompasining 10 (0xA), 11 (0xB) va 12 (0xC) identifikatsiya registrlarini o'qishga harakat qilib, rasmdagi kabi eskizni yozamiz. Bu batafsil sharhlar bilan ta'minlangan.

HMC5883 identifikatsiya registrlarini o'qigan eskiz
HMC5883 identifikatsiya registrlarini o'qigan eskiz

4-qadam

Mantiqiy analizator bilan olingan signal rasmda ko'rsatilgandek bo'ladi.

Bu nimani anglatadi? Birinchi bayt - bu I2C-manzil, biz u bilan (asosiy qurilma, Arduino) aloqa o'rnatamiz (yuqori 7 bit 0x1E) va yozish rejimi (past bit - 0x0); raqam 0x3C. Ikkinchi bayt - bu 0xA raqami, biz 0x1E manziliga yozganmiz va qul bo'lgan HMC5883L sensoridan tasdiqlash biti. Bu biz ma'lumotlarni o'qishni boshlaydigan registr raqami. Bu birinchi operatsiyani yakunlaydi. Keyingi boshlanadi. Uchinchi bayt - bu quldan o'qish so'rovi (eng muhim 7 bit - 0x1E manzili, 8-bit - o'qish jarayoni 0x1; natijada olingan raqam 0x3D). Oxirgi 3 uch bayt - bu mos ravishda 0xA, 0xB va 0xC registrlaridan HMC5883L qulining javobidir.

Raqamli kompas HMC5883L uzluksiz o'qish paytida registrlar orqali mustaqil ravishda harakatlanadi. O'sha. har safar ishni ko'rsatish shart emas (lekin taqiqlanmagan). Masalan, agar 0xA o'rniga 0x3 yozib, 10 marta o'qigan bo'lsak, biz 3 dan 12 gacha bo'lgan 10 registrda qiymatlarni olamiz.

Va bu uchta raqam nima - 0x48, 0x34, 0x33? HMC5883L raqamli kompas uchun ma'lumot varag'idan yana foydalanib, biz uchta identifikatsiya registri uchun standart qiymatlar ekanligini ko'ramiz.

HMC5883 raqamli kompas bilan I2C almashinuvining vaqt diagrammasi
HMC5883 raqamli kompas bilan I2C almashinuvining vaqt diagrammasi

5-qadam

Magnit maydonda raqamli kompas ma'lumotlarini olish uchun biz identifikatsiya registrlarini o'qiganimiz kabi 3 dan 8 gacha registrlarni o'qishingiz kerak. Faqatgina farq shundaki, X, Y va Z uch o'qlarining har biri uchun ma'lumotlar ikki baytli raqamlar sifatida taqdim etilgan. Ularni o'nlik sonlarga aylantirib, biz uchta o'qning har biri bo'ylab yo'nalishlarni olamiz.

Tavsiya: