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

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

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

📐 Проект: индикатор наклона на MPU-6050 и RGB-светодиоде

Схема индикатора наклона на MPU-6050 и RGB-светодиоде

MPU-6050 измеряет угол наклона по ускорению свободного падения, RGB-светодиод меняет цвет с зелёного на красный по мере отклонения от горизонта.

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

MPU-6050 содержит 3-осевой акселерометр и гироскоп, но тут используется только акселерометр: на статичной платформе измеряемый вектор ускорения — это просто вектор силы тяжести. Раскладывая его по осям X и Z через `atan2(ax, az)`, вычисляется угол наклона относительно горизонта.

Оговорка: `atan2(ax, az)` даёт угол только в одной плоскости (вокруг оси Y). Для полного 3D-наклона нужно учитывать и `ay`. Для демонстрационного индикатора одной плоскости достаточно.

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

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

  1. MPU-6050: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  2. RGB-светодиод: R → D9, G → D10, через резисторы 220-330 Ом, общий катод → GND.
  3. Положите платформу горизонтально и загрузите скетч — светодиод должен гореть зелёным.
  4. Наклоняйте и проверьте, что около 45° светодиод становится красным; скорректируйте `constrain(tilt, 0, 45)` при необходимости.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.

#include <Wire.h>
#include <MPU6050.h>

MPU6050 mpu;
const int redPin = 9;
const int greenPin = 10;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}

void loop() {
  int16_t ax, ay, az;
  mpu.getAcceleration(&ax, &ay, &az);
  float angle = atan2(ax, az) * 180.0 / PI;
  int tilt = abs(angle);
  Serial.print("Угол наклона: ");
  Serial.println(tilt);
  int red = map(constrain(tilt, 0, 45), 0, 45, 0, 255);
  analogWrite(redPin, red);
  analogWrite(greenPin, 255 - red);
  delay(50);
}
                

Библиотека MPU6050 ставится через Менеджер библиотек. Чем ближе плата к горизонтали, тем зеленее светодиод, чем сильнее наклон — тем краснее.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🧭 электронный компас на GY-273 с…🌐 мини-метеостанция на ESP8266 и… →

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

Все 2 товара сразу: 352 ₽ 317 ₽ (экономия 35 ₽)

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

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

Корзина

Поиск


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