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

Розглянемо підключення модуля 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

 

Related posts

 
 

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *