Подключение MPU6050 к ESP32

Акселерометр и гироскоп

MPU6050 к ESP32 подключается по I2C: SDA на GPIO21, SCL на GPIO22, питание 3,3 В. Модуль GY-521 содержит стабилизатор, поэтому его можно питать и от 5 В, а сигналы на шине остаются 3,3-вольтовыми.

Схема подключения MPU6050 к ESP32

MPU6050 (GY-521)ESP32
SCLGPIO22
SDAGPIO21
VCC3V3
GNDGND

Схема из примера «MPU6050: шесть чисел».

MPU6050: шесть чисел

Открыть пример целиком

Выводы MPU6050 (GY-521)

ВыводНазначение
INTвыход прерывания «данные готовы» или «движение»; для простого чтения не нужен
SCLтактовая линия I2C
SDAлиния данных I2C
VCCпитание
GNDобщий провод

Код для ESP32

#include <Adafruit_MPU6050.h>

Adafruit_MPU6050 mpu;

void setup() {
  Serial.begin(115200);
  delay(200);

  // begin() не только проверяет датчик, но и будит его. Скетч,
  // написанный без библиотеки и забывший про регистр питания,
  // получит ровно нули — и на столе, и здесь.
  if (!mpu.begin()) {
    Serial.println("MPU6050 не отвечает: проверьте адрес и провода");
    while (true) delay(1000);
  }

  mpu.setAccelerometerRange(MPU6050_RANGE_2_G);
  mpu.setGyroRange(MPU6050_RANGE_250_DEG);
}

void loop() {
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);

  // Ускорение библиотека отдаёт в метрах на секунду в квадрате, а не в
  // единицах силы тяжести: делите на 9,81, если привычнее в g.
  Serial.printf("a %.2f %.2f %.2f м/с2   w %.2f %.2f %.2f рад/с   %.1f C\n",
                a.acceleration.x, a.acceleration.y, a.acceleration.z,
                g.gyro.x, g.gyro.y, g.gyro.z, temp.temperature);
  delay(500);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на ESP32

Частые ошибки при подключении к ESP32

Другие детали для ESP32