Розглянемо підключення модуля GY-273 з трехосевым цифровим компасом HMC5883L фірми Honeywell. Ця мікросхема може використовуватися для магнитометрических вимірювань, навігації, якщо не потрібна велика точність вимірів (з похибкою 1…2 градуси і можливістю калібрування). Пристрій підключається по інтерфейсу I2C.


Как подключить цифровой компас HMC5883 к Arduino

Вам знадобиться

  • – Цифровий компас HMC5883;
  • – Arduino;
  • – макетна плата і з’єднувальні проводи;
  • – комп’ютер.

Інструкція

1. Ось основні характеристики магнітного компаса:
– 3-осьовий магніточутливий датчик;
– 12-розрядний АЦП з роздільною здатністю 2 мдр (миллигаусс);
– вбудована самоперевірка;
– низька робоча напруга і мале споживання;
– цифровий інтерфейс I2C;
– висока швидкість опитування – до 160 разів в секунду (час одного виміру приблизно 6 мс);
– точність визначення напрямку 1°…2°;
– може застосовуватися в сильних магнітних полях (до ±8 Гаус).
Схема підключення магнітного датчика HMC5883L до Arduino наведена на малюнку. Вона дуже компактна і проста, т. к. двопровідної інтерфейс I2C тим і хороший, що вимагає малої кількості з’єднань. Можна скористатися макетної платою.


Как подключить цифровой компас HMC5883 к Arduino

2. Повинно вийти приблизно так, як на фотографії. Я ще підключу до шин SCL і SDA логічний аналізатор, щоб контролювати інформаційний обмін між Arduino і модулем HMC5883. Це не обов’язково.


Как подключить цифровой компас HMC5883 к Arduino

3. Давайте в якості першого знайомства спробуємо прочитати ідентифікаційний регістри 10 (0xA), 11 (0xB) і 12 (0xC) цифрового компаса HMC5883 і напишемо ось такий скетч, як на малюнку. Він постачений докладними коментарями.


Как подключить цифровой компас HMC5883 к Arduino

4. Сигнал, отриманий з допомогою логічного аналізатора, буде таким, як на ілюстрації.
Що це означає? Перший байт – I2C адресу, з яким ми (провідне пристрій, Arduino) встановлюємо зв’язок (старші 7 біт 0x1E), і режим запису (молодший біт – 0x0); виходить число 0x3C. Другий байт – число 0xA, яке ми записали за адресою 0x1E і біт підтвердження від датчика HMC5883L, яке є веденим. Це номер регістра, з якого ми почнемо зчитувати дані. На цьому перша транзакція закінчилася. Починається наступна. Третій байт – це запит читання у веденого (старші 7 біт – адреса 0x1E, 8-ий біт – операція читання 0x1; виходить число 0x3D). Останні 3 три байти – це відповідь веденого пристрою HMC5883L з регістрів 0xA, 0xB і 0xC, відповідно.
Цифровий компас HMC5883L при безперервному зчитуванні переміщається по регістрах самостійно. Тобто кожен раз вказувати регістр не обов’язково (але і не заборонено). Наприклад, якщо ми замість 0xA записали б 0x3 і 10 разів вважали, то отримали б значення в 10-ти регістрах, починаючи з 3-го по 12-ий.
А що це за три числа – 0x48, 0x34, 0x33? Знову скориставшись паспортом на цифровий компас HMC5883L, ми побачимо, що це значення за замовчуванням для трьох ідентифікаційних регістрів.


Как подключить цифровой компас HMC5883 к Arduino

5. Щоб отримати дані цифрового компаса по магнітному полю, потрібно прочитати регістри з 3-го по 8-ий подібно до того, як ми прочитали ідентифікаційні регістри. З тією лише різницею, що дані по кожній з трьох осей X, Y і Z представлені у вигляді двобайтових чисел. Перевівши їх у десяткові числа, ми отримаємо напрямки по кожній з трьох осей.


Как подключить цифровой компас HMC5883 к Arduino

НАПИСАТИ ВІДПОВІДЬ

Please enter your comment!
Please enter your name here