Arduino QMC5883
тел. +7(499)347-04-82
Описание Arduino QMC5883
QMC5883 / QMC5883L — трёхосный цифровой магнитометр (компас)
Описание
QMC5883 — это трёхосный магнитометр (датчик магнитного поля) с цифровым интерфейсом I²C, производимый китайской компанией QST Corporation. Является функциональным аналогом популярного HMC5883L (Honeywell), но не совместим с ним по регистрам — это частая причина ошибок у новичков, которые пытаются использовать библиотеки от HMC5883L.
Датчик измеряет магнитное поле по трём осям (X, Y, Z) и широко используется:
- в электронных компасах и навигационных системах;
- для определения курса (heading) в дронах, роботах, антеннах-трекерах;
- как датчик ориентации вместе с акселерометром/гироскопом;
- в системах определения положения и магнитной навигации.
В модулях на плате обычно установлен стабилизатор напряжения и подтягивающие резисторы на линиях I²C, поэтому модуль работает от 3,3–5 В, а микросхема — от 2,5–3,6 В (постоянное питание возможно до 3,6 В).
Технические характеристики QMC5883L
| Параметр | Значение | |---|---| | Тип | 3-осевой магнитометр (MEMS, AMR-тип) | | Интерфейс | I²C (до 400 кГц) | | Напряжение питания (чип) | 2,5 – 3,6 В (типично 3,3 В) | | Напряжение питания (модуль) | 3,3 – 5 В (через LDO) | | Ток потребления | ~75 мкА (в режиме измерения, standby — нА) | | Диапазон измерений | ±2 Гаусс (по умолчанию), ±8 Гаусс (2 Гаусс — типичный mode) — фактически поддерживается ±2 Gauss / ±8 Gauss | | Разрешение | до 1 мГс (16 бит выходных данных) | | Частота выходных данных (ODR) | 10, 50, 100, 200 Гц (настраивается) | | Разрешение АЦП | 16 бит на ось | | Встроенный температурный датчик | Да | | Разрешение温度的 | ~ 1 °C (для компенсации) | | I²C адрес по умолчанию | 0x0D (семибитный) / 0x1A при записи | | Рабочая температура | −40 … +85 °C | | Корпус | LGA-16 (3×3×0,9 мм), также встречаются модули с платой | | Поддержка прерываний | Да (за выводом INT по данным датчика) |
Режимы работы: Standby, Continuous, Single measurement.
Чувствительность: растёт с OSR; стандартно ~1000 LSB/Gauss (зависит от настройки).
Усиление/перегрузка: при слабом поле и разрешении 2 Гаусса выход 16-бит.
Основные отличия от HMC5883L:
- другой I²C-адрес: 0x0D вместо 0x1E;
- другая регистровая карта (регистр данных, контрольные регистры);
- ориентация осей в модулях может отличаться;
- магнитное склонение/калибровка (hard-iron, soft-iron) для компасных приложений всё равно требуется коррекции.
Парт-номера (part numbers)
Типовые маркировки микросхемы/модулей:
- QMC5883 — базовая ИС, LGA-16
- QMC5883L — улучшенная/основная версия (наиболее распространённая); иногда маркируется как «QMC5883L-001»
- QMC5883P — версия с улучшенными характеристиками (точность/стабильность), встречается реже
- Модули на рынке часто идут без отдельного парт-номера, по типу:
- GY-271 (часто та, что визуально совместима с HMC5883L, но чип внутри QMC5883L!)
- внешняя маркировка конкретного продавца (емкость обозначаются например «QMC5883L GY-271 Board»)
Важно: плата «GY-271» встречается как с HMC5883L, так и с QMC5883L — нужно смотреть маркировку чипа при покупке.
Совместимые модели и замена
Прямые функциональные аналоги (по назначению, но должны меняться регистры):
- Honeywell HMC5883L — популярный оригинал HMC; сигнально близок, но регистрово не совместим;
- HMC5883 — ранняя версия HMC;
- QMC5883P — улучшенная замена в рамках QMC-семейства;
- Bosch BMM150, ST LSM303AGR (магнитометр), PNI RM3000 — другие классы магнитометров;
- Магнитные датчики: AK8963/MPU9250 (магнитометр в композитном IMU), MAG3110, LIS2MDL, MMC5983MA, HMC5983.
Библиотеки/платформы для Arduino (совместимость ПО):
- Arduino: I2C используется через
Wire.h; есть библиотеки QMC5883L (напр.QMC5883LCompassот developer-примеров), GyverCompassMassive,QMPXXX_Ubuntu-подоб. GitHub — Вarch. Часто используемая общественная от Ku4ku/AlexGyver (Gyver-форк/обёртка над HMC/DCM-библиотека) над SimpleKomPa^library в под platform. - Прямых спикок из популярных библиотек для Arduino (Raw): Пример использования
QMC5883LCompassLibв примерах), адрес 0x0D. - Библиотеки для HMC5883 БЕЗ правки обычно не работают! Ищите «QMC5883L Arduino library».
- На платах: популярны как pairing sensors для MPU6050/GY-521 для построения IMU 9Dof-Q, though hardware filter - «пользуй» супeр filter с AK/GY data set, фор union задача 10ю.
- Платформенная поддержка: Arduino UNO/Nano/Mega/ESP32/ESP8266/STM32 — везде I²C — библиотечных ограничений нет. I²C адрес конфликт с другими — не забудьте про мультиплексоры при конфл reserved area.
Схема подключения к Arduino (типовая)
QMC5883L -> Arduino
VCC -> 3.3V (или 5V на модуле с LDO)
GND -> GND
SCL -> A5 (UNO/Wire SCL)
SDA -> A4 (UNO/Wire SDA)
Подтягивающие резисторы 4.7–10 кОм на модуле обычно уже есть.
Если оставались конкретные нужды — например «выдать парт номер чипа на плате» или свежие veb-характеристики (2-8 Ga) для макетных тонк, говори дополнительно . Попробую найти.