Интернет-магазин «Неглупый Дом»
GY-273 определяет азимут по магнитному полю Земли, значение в градусах выводится на дисплей.
GY-273 — это трёхосевой магнитометр: он измеряет магнитное поле по трём осям (X, Y, Z) и на основе двух горизонтальных составляющих вычисляет угол (азимут) относительно магнитного севера Земли. Библиотека `QMC5883LCompass` берёт на себя всю математику пересчёта и сразу выдаёт готовый угол через `getAzimuth()`.
Азимут, который показывает компас — это направление на магнитный север, а не на истинный (географический) — между ними есть угол магнитного склонения, который зависит от местоположения на Земле и может составлять от нескольких до десятков градусов. Для бытовой навигации эта погрешность обычно не критична, но для точных задач её нужно учитывать отдельно.
Магнитометр очень чувствителен к внешним помехам: моторы, динамики, другая электроника и даже металлические предметы рядом искажают показания, поэтому датчик нужно откалибровать (функция `compass.calibrate()`) именно в тех условиях, где он будет постоянно работать, и держать подальше от источников магнитных полей.
Так как реализации модуля бывают разные, если контактов как в примере нет на вашей плате — сориентируйтесь по надписям на своей.
// ВНИМАНИЕ: отладьте через монитор порта — я языковая модель, а не
// специализированный кодер, основу накидал, проверьте под свою схему.
#include <Wire.h>
#include <QMC5883LCompass.h>
#include <LiquidCrystal_I2C.h>
QMC5883LCompass compass;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
compass.init();
// compass.calibrate(); // выполните один раз отдельно, затем закомментируйте
lcd.init();
lcd.backlight();
}
void loop() {
compass.read();
int azimuth = compass.getAzimuth(); // 0-359 градусов от магнитного севера
lcd.setCursor(0, 0);
lcd.print("Azimuth: ");
lcd.print(azimuth);
lcd.print(" deg ");
delay(500);
}
Библиотека QMC5883LCompass совместима с HA5883/QMC5883L/HMC5883L. Перед первым использованием стоит выполнить калибровку (`compass.calibrate()`) вдали от источников магнитных помех.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 473 ₽ 426 ₽ (экономия 47 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.