Интернет-магазин «Неглупый Дом»
MPU-6050 измеряет угол наклона по ускорению свободного падения, RGB-светодиод меняет цвет с зелёного на красный по мере отклонения от горизонта.
MPU-6050 содержит 3-осевой акселерометр и гироскоп, но тут используется только акселерометр: на статичной платформе измеряемый вектор ускорения — это просто вектор силы тяжести. Раскладывая его по осям X и Z через `atan2(ax, az)`, вычисляется угол наклона относительно горизонта.
Оговорка: `atan2(ax, az)` даёт угол только в одной плоскости (вокруг оси Y). Для полного 3D-наклона нужно учитывать и `ay`. Для демонстрационного индикатора одной плоскости достаточно.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.
#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: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 352 ₽ 317 ₽ (экономия 35 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.