🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🧭 Проект: электронный компас на GY-273 с выводом на LCD1602

Схема электронного компаса на GY-273 с выводом на LCD1602

GY-273 определяет азимут по магнитному полю Земли, значение в градусах выводится на дисплей.

Как это работает

GY-273 — это трёхосевой магнитометр: он измеряет магнитное поле по трём осям (X, Y, Z) и на основе двух горизонтальных составляющих вычисляет угол (азимут) относительно магнитного севера Земли. Библиотека `QMC5883LCompass` берёт на себя всю математику пересчёта и сразу выдаёт готовый угол через `getAzimuth()`.

Азимут, который показывает компас — это направление на магнитный север, а не на истинный (географический) — между ними есть угол магнитного склонения, который зависит от местоположения на Земле и может составлять от нескольких до десятков градусов. Для бытовой навигации эта погрешность обычно не критична, но для точных задач её нужно учитывать отдельно.

Магнитометр очень чувствителен к внешним помехам: моторы, динамики, другая электроника и даже металлические предметы рядом искажают показания, поэтому датчик нужно откалибровать (функция `compass.calibrate()`) именно в тех условиях, где он будет постоянно работать, и держать подальше от источников магнитных полей.

Пошаговая сборка

Так как реализации модуля бывают разные, если контактов как в примере нет на вашей плате — сориентируйтесь по надписям на своей.

  1. GY-273: SDA → A4, SCL → A5, VCC → 3.3-5V, GND → GND.
  2. LCD1602 с I2C подключается на ту же шину (SDA/SCL общие для всех I2C-устройств).
  3. Один раз запустите калибровку `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: Электронные модули.

← 🐣 терморегулятор инкубатора на D…📐 индикатор наклона на MPU-6050 … →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 473 ₽ 426 ₽ (экономия 47 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA