QMC5883L · CIC-SEN0003
XPU Labs / AnalogLamb; микросхема QST · CIC QMC5883L Breakout · CIC-SEN0003
Трёхосевой магнитометр для электронного компаса и измерения магнитного поля.
Автор: SLDV LAB
Опубликовано · Обновлено
О МОДУЛЕ
Что делает CIC QMC5883L Breakout · CIC-SEN0003
QMC5883L измеряет магнитное поле по трём осям. Здесь представлена готовая плата CIC-SEN0003 от XPU Labs / AnalogLamb с подписанными контактами и двумя разъёмами Qwiic. Она подходит для электронного компаса, оценки курса робота и наблюдения за изменениями магнитного поля. Курс рассчитывается программно и требует калибровки, а для работы при наклоне нужен отдельный акселерометр.
Особенности
- QMC5883L использует адрес 0x0D и собственную карту регистров; у HMC5883L адрес 0x1E. Библиотеки для HMC5883L без поддержки QMC5883L не подходят.
- На плате нет стабилизатора и преобразователей уровней; SDA/SCL подтянуты к VDD. С ESP32 используйте питание 3,3 В.
- Калибруйте собранное устройство вращением по всем осям: компенсируйте постоянное смещение и искажения от магнитных материалов. После изменения компоновки повторите калибровку.
- Держите датчик вдали от магнитов, стальных креплений, двигателей и силовых проводов. Калибровка не устраняет меняющиеся магнитные помехи.
- Простой курс по X/Y корректен при горизонтальном положении. Для истинного севера учитывайте местное магнитное склонение; точность 1–2° в готовом устройстве не гарантирована.
Для каких проектов подойдёт
- Настольный компас: отображение направления на экране после калибровки.
- Мобильный робот: магнитный курс в дополнение к данным гироскопа и акселерометра.
- Учебный регистратор: наблюдение за изменениями магнитного поля по трём осям.
Чем отличается
Два диапазона измерения и частота выдачи до 200 Гц позволяют выбирать настройки под задачу. Это магнитометр без акселерометра и гироскопа: сам по себе он не выдаёт готовую пространственную ориентацию.
Характеристики
- Сенсор
- QMC5883L
- Оси
- 3 магнитные оси
- Диапазоны
- ±2 / ±8 Гс
- АЦП
- 16 бит
- Интерфейс
- I²C, до 400 кГц
- Адрес I²C
- 0x0D
- Частота данных
- 10/50/100/200 Гц
- Питание платы
- 2,2–3,6 В
- Размеры платы
- 28 × 18 × 5 мм
- Питание модуля
- Плата: 2,2–3,6 В. Для ESP32 питание и логика — 3,3 В; 5 В недопустимы.
ПРАКТИКА
Подключение
| Контакт модуля | Контакт платы | Назначение |
|---|---|---|
| VDD | 3V3 | ESP32 DevKitC: питание платы 3,3 В, стабилизатора на модуле нет. Используйте подписанный ряд контактов. |
| GND | GND | Общая земля; оба подписанных GND соединены. |
| SDA | GPIO21 | Данные I²C; на плате есть подтяжка к VDD. |
| SCL | GPIO22 | Тактовая линия I²C; для ESP32-C3/C6/S3 выбирайте выводы отдельно. |
| RDY | Не подключать | Для простого опроса не нужен; готовность данных можно проверять в регистре статуса. |
| Неподписанный ряд | Не подключать | J2 на схеме не имеет электрических соединений. Он не заменяет подписанный ряд VDD/GND/SDA/SCL/RDY/GND. |
Подходит для ESP32. Выберите контакты по документации своей платы.
ВАШ ПРОЕКТ · ВАШ ДАТЧИК
Интегрируйте модуль с ChatGPT
Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.
Помоги подключить CIC-SEN0003 с QMC5883L. Сначала уточни контроллер, среду и задачу. Для ESP32 DevKitC используй VDD → 3V3, GND → GND, SDA → GPIO21, SCL → GPIO22; RDY оставь свободным. Проверь адрес 0x0D, затем подготовь минимальный пример с GyverMag и проверкой ошибок I²C. Объясни калибровку и единицы измерения. Для курса учти направление осей, магнитное склонение и наклон. Не используй драйвер HMC5883L или QMC5883P и не обещай точный курс рядом с двигателем или магнитом.
Библиотеки
Установите библиотеку для своей среды и откройте пример из её документации.
Что именно прописать
- Платформа
ESP32 DevKitC / Arduino CoreGPIO21/22 относятся к этому примеру, а не ко всем моделям ESP32.
- Адрес I²C
0x0DПодтверждён datasheet, страницей платы и маркировкой на обороте. В схеме v1.0 опечатка: 0x13. Перемычки выбора адреса нет.
- Основная библиотека
GyverMag · GyverLibsПодключите Wire.h и QMC5883L.h именно из GyverMag; создайте QMC5883L mag(0x0D).
- Инициализация
Wire.begin(21, 22, 100000)Затем mag.begin(Wire); проверьте bool-результат обоих вызовов. По умолчанию: непрерывный режим, ±2 Гс, 50 Гц, OSR 512.
- Чтение
mag.readGauss()Результат — компоненты поля в гауссах; 1 Гс = 100 мкТл. Для курса сначала выполните калибровку и настройку осей.
- Калибровка
mag.calibrate(callback)GyverMag использует минимумы/максимумы без полной матрицы искажений. Результат хранится в mag.cal; для повторного запуска сохраните его отдельно.
- Альтернатива Arduino
QMC5883LCompass · MProgramsQMC5883LCompass compass; затем Wire.setPins(21, 22); compass.init(); compass.setMode(0x01, 0x04, 0x00, 0x00). Это 50 Гц, ±2 Гс, OSR 512. Перед getX/Y/Z() вызывайте compass.read(); значения сырые, не мкТл.
- Альтернатива MicroPython
QMC5883L · robert-hhНужны qmc5883l.py и mag_base.py. Импорт: from machine import Pin, I2C; from qmc5883l import QMC5883L. Создайте i2c = I2C(0, sda=Pin(21), scl=Pin(22), freq=100000), затем mag = QMC5883L(i2c). mag.read_scaled() возвращает X/Y/Z в гауссах и температурное значение.
- Подтяжки SDA/SCL
Установлены на платеПодтянуты к VDD. Номиналы в источниках различаются: схема 2,2 кОм, описание и фото 4,7 кОм; дополнительные резисторы без проверки не добавляйте.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.



