IMU Sensor · SKU 02532

GY-521 MPU-6050 六轴模块资料

常见 I2C 六轴姿态传感器模块,集成三轴加速度计和三轴陀螺仪,适合 Arduino、ESP32、树莓派做姿态检测、倾角检测、运动检测和入门实验。

Quick Facts

  • 接口:I2C,常见地址 0x68 / 0x69
  • 功能:3 轴加速度 + 3 轴陀螺仪
  • 平台:Arduino、ESP32、树莓派均可测试
  • 提醒:模块批次差异以实物丝印为准
GY-521 MPU-6050 六轴陀螺仪加速度计模块 SKU:02532;淘宝链接待补充。
进入淘宝店铺咨询

Overview

模块介绍

GY-521 是基于 MPU-6050 的六轴姿态模块。芯片内部有三轴 MEMS 陀螺仪、三轴 MEMS 加速度计和温度传感器,可通过 I2C 输出原始运动数据。需要姿态角时,通常使用 DMP 或软件滤波库处理。

I2C 通信

UNO/Nano 常用 A4/A5,ESP32 常用 GPIO21/GPIO22,树莓派常用 GPIO2/GPIO3。

地址切换

AD0 接 GND 通常是 0x68;AD0 接 VCC 通常是 0x69,可挂两个 MPU-6050。

资料状态

MPU-6050 官方状态和替代型号以 TDK 最新公开页面为准;模块供货批次以实物为准。

Wiring

Arduino UNO / Nano 接线

普通测试先接 VCC、GND、SDA、SCL 四根线即可。INT 是可选脚,跑 DMP 中断模式时再接。

GY-521 MPU-6050 接 Arduino UNO Nano 接线图
GY-521Arduino UNO / Nano说明
VCC5V 或 3.3V常见模块可接 5V,最终以实物模块说明为准
GNDGND共地
SDAA4 / SDAI2C 数据
SCLA5 / SCLI2C 时钟
INTD2 可选DMP 中断模式建议接
AD0默认不接或接 GND默认地址 0x68

ESP32

ESP32 接线

ESP32 是 3.3V 逻辑,建议 GY-521 VCC 接 3.3V。不同 ESP32 板可自定义 I2C 引脚,代码里用 Wire.begin(SDA, SCL) 指定。

GY-521 MPU-6050 接 ESP32 接线图
GY-521ESP32说明
VCC3.3V推荐接 3.3V
GNDGND共地
SDAGPIO21常用默认 SDA
SCLGPIO22常用默认 SCL
INTGPIO4 可选也可换其他可用 GPIO
AD0默认不接或接 GND默认地址 0x68

Raspberry Pi

树莓派接线

树莓派 I2C 是 3.3V 逻辑,VCC 接 3V3。使用前需要在系统里启用 I2C,再用 i2cdetect -y 1 检查地址。

GY-521 MPU-6050 接树莓派接线图
GY-521树莓派 40Pin说明
VCCPin 1 / 3V3不要接 5V
GNDPin 6 / GND共地
SDAPin 3 / GPIO2I2C SDA
SCLPin 5 / GPIO3I2C SCL
INTGPIO17 可选普通读取可不接
AD0默认不接或接 GND默认地址 0x68

I2C Address

地址 0x68 / 0x69

AD0 状态I2C 地址用途
接 GND 或默认悬空0x68最常见默认地址
接 VCC0x69同一总线挂第二个 MPU-6050 时使用

Arduino Code

Adafruit MPU6050 基础读取示例

Arduino IDE 打开库管理器,安装 Adafruit MPU6050Adafruit Unified SensorAdafruit BusIO 后再上传。

#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>

Adafruit_MPU6050 mpu;

void setup(void) {
  Serial.begin(115200);
  while (!Serial) delay(10);

  if (!mpu.begin()) {
    Serial.println("Failed to find MPU6050 chip");
    while (1) delay(10);
  }

  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}

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

  Serial.print("Accel X: ");
  Serial.print(a.acceleration.x);
  Serial.print(", Y: ");
  Serial.print(a.acceleration.y);
  Serial.print(", Z: ");
  Serial.println(a.acceleration.z);

  Serial.print("Gyro X: ");
  Serial.print(g.gyro.x);
  Serial.print(", Y: ");
  Serial.print(g.gyro.y);
  Serial.print(", Z: ");
  Serial.println(g.gyro.z);

  Serial.print("Temp: ");
  Serial.println(temp.temperature);
  delay(500);
}

FAQ

常见问题与排查

I2C 扫描不到 0x68 怎么办?

先检查 VCC/GND/SDA/SCL 是否接反,再确认板子供电。UNO/Nano 是 A4/A5,ESP32 常用 GPIO21/GPIO22,树莓派需要先启用 I2C。

为什么地址变成 0x69?

AD0 接到 VCC 时地址通常变为 0x69。默认不接或接 GND 通常是 0x68。

读数一直跳动正常吗?

加速度和陀螺仪原始值会有噪声,轻微跳动正常。可降低滤波带宽、做滑动平均、固定模块并重新校准。

姿态角为什么会漂移?

陀螺仪积分会产生漂移,Yaw 角尤其明显。需要校准偏移量,并使用 DMP 或互补滤波/卡尔曼滤波处理。

INT 脚必须接吗?

基础读取不用接。跑 DMP 数据就绪中断时建议接到外部中断脚,例如 UNO D2。

Customer Reply

淘宝客户简短话术

您好,GY-521 接 Arduino UNO/Nano 常用接法是 VCC 接 5V 或 3.3V、GND 接 GND、SDA 接 A4、SCL 接 A5。ESP32 建议 VCC 接 3.3V,SDA 接 GPIO21,SCL 接 GPIO22。

您好,扫描不到请先确认电源、GND、SDA、SCL 四根线;默认地址一般是 0x68,如果 AD0 接到 VCC 会变成 0x69。建议先跑 I2C Scanner,再跑 Adafruit MPU6050 示例。

References

官方资料 / 公开资料链接