🛒
0 товаров
0 руб.

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


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

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

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

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

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

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

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

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

  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 (например, от Electronic Cats или jrowberg) ставится через Менеджер библиотек. Чем ближе плата к горизонтали, тем зеленее светодиод; чем сильнее наклон — тем краснее.

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

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

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

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

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

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

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

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

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

Корзина


Поиск



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