0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP32驱动MPU-6050三轴加速度三轴陀螺仪传感器串口输出数据

jf_88434166 来源:jf_88434166 作者:jf_88434166 2026-06-06 09:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、简介

MPU-6050集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP,预留用于从外部传感器读取数据的辅助I2C接口引脚,可以连接一个第三方的数字传感器。比如IIC接口三轴磁场传感器,从而组成9轴的姿态传感器系统。MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可编程测试范围为±250,±500,±1000,±2000dps,加速度计可测范围为±2,±4,±8,±16g。


现市场上流通的有两种的MPU-6050芯片的版本,一种是老款的ID是0x68的,一种是新款的ID是0x70。本实验中应用的是新版的。

二、原理图引脚说明

在这里插入图片描述

名称描述
VDDDC+5v
GNDGND
SCLIIC串行时钟线/SPI串行时钟端口
SDAIIC串行数据线/SPI串行数据输入
XDA预留辅助SDA引脚,可接其他传感器
XCL预留辅助SCL引脚,可接其他传感器
AD0IIC器件地址选择位/SPI串行数据输出
INT中断引脚

三、MPU-6050与ESP32开发板接线

在这里插入图片描述

MPU6050ESP32
VCC5V
GNDGND
SDA21
SCL22

四、Arduino代码

安装相关依赖库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开示例库所安装在的目录文件夹下的头文件,并把ID值改为0x70
在这里插入图片描述
打开示例程序
在这里插入图片描述

// Basic demo for accelerometer readings from Adafruit MPU6050

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

Adafruit_MPU6050 mpu;

void setup(void) {
  Serial.begin(115200);
  while (!Serial)
    delay(10); // will pause Zero, Leonardo, etc until serial console opens

  Serial.println("Adafruit MPU6050 test!");

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

  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
  Serial.print("Accelerometer range set to: ");
  switch (mpu.getAccelerometerRange()) {
  case MPU6050_RANGE_2_G:
    Serial.println("+-2G");
    break;
  case MPU6050_RANGE_4_G:
    Serial.println("+-4G");
    break;
  case MPU6050_RANGE_8_G:
    Serial.println("+-8G");
    break;
  case MPU6050_RANGE_16_G:
    Serial.println("+-16G");
    break;
  }
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  Serial.print("Gyro range set to: ");
  switch (mpu.getGyroRange()) {
  case MPU6050_RANGE_250_DEG:
    Serial.println("+- 250 deg/s");
    break;
  case MPU6050_RANGE_500_DEG:
    Serial.println("+- 500 deg/s");
    break;
  case MPU6050_RANGE_1000_DEG:
    Serial.println("+- 1000 deg/s");
    break;
  case MPU6050_RANGE_2000_DEG:
    Serial.println("+- 2000 deg/s");
    break;
  }

  mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
  Serial.print("Filter bandwidth set to: ");
  switch (mpu.getFilterBandwidth()) {
  case MPU6050_BAND_260_HZ:
    Serial.println("260 Hz");
    break;
  case MPU6050_BAND_184_HZ:
    Serial.println("184 Hz");
    break;
  case MPU6050_BAND_94_HZ:
    Serial.println("94 Hz");
    break;
  case MPU6050_BAND_44_HZ:
    Serial.println("44 Hz");
    break;
  case MPU6050_BAND_21_HZ:
    Serial.println("21 Hz");
    break;
  case MPU6050_BAND_10_HZ:
    Serial.println("10 Hz");
    break;
  case MPU6050_BAND_5_HZ:
    Serial.println("5 Hz");
    break;
  }

  Serial.println("");
  delay(100);
}

void loop() {

  /* Get new sensor events with the readings */
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);

  /* Print out the values */
  Serial.print("Acceleration X: ");
  Serial.print(a.acceleration.x);
  Serial.print(", Y: ");
  Serial.print(a.acceleration.y);
  Serial.print(", Z: ");
  Serial.print(a.acceleration.z);
  Serial.println(" m/s^2");

  Serial.print("Rotation X: ");
  Serial.print(g.gyro.x);
  Serial.print(", Y: ");
  Serial.print(g.gyro.y);
  Serial.print(", Z: ");
  Serial.print(g.gyro.z);
  Serial.println(" rad/s");

  Serial.print("Temperature: ");
  Serial.print(temp.temperature);
  Serial.println(" degC");

  Serial.println("");
  delay(500);
}

编译上传程序到ESP32开发板中,打开串口监视器,将打印显示出ESP32读取到MPU-6050传感器当前位置实时的三轴加速度、三轴角速度、传感器芯片内部温度数据。
在这里插入图片描述

五、总结

当拿到新版本的MPU-6050测试时,测试不通过,或程序报错,有可能就是程序中ID值没有更改过来,程序中含有ID检测语句,当读取到的ID不等于0x68的时候就会报错,因此要把宏定义中的ID值改过来,或去掉程序中有关的检测语句。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2579

    文章

    55968

    浏览量

    796266
  • ESP32
    +关注

    关注

    27

    文章

    1243

    浏览量

    22873
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BMA222数字加速度传感器:特性、功能与应用全解析

    BMA222数字加速度传感器:特性、功能与应用全解析 在当今的电子设备中,加速度传感器扮演着
    的头像 发表于 05-09 14:55 153次阅读

    BMA220:一款高性能的加速度传感器

    。博世的BMA220就是一款备受关注的加速度传感器,今天我们就来深入了解一下它。 文件下载: BMA220-SHUTL.pdf 一、产品概述 BMA220是一款面向消费市场应用的
    的头像 发表于 05-09 14:40 155次阅读

    BMA150数字加速度传感器:设计与应用的全面解析

    BMA150数字加速度传感器:设计与应用的全面解析 引言 在当今的电子设备中,加速度传感器
    的头像 发表于 05-09 14:40 163次阅读

    BMA145模拟加速度传感器深度解析

    BMA145模拟加速度传感器深度解析 一、引言 在如今的电子设备中,加速度传感器的应用日益广
    的头像 发表于 05-09 14:40 156次阅读

    BMA180数字加速度传感器:高性能与灵活性的完美结合

    BMA180数字加速度传感器:高性能与灵活性的完美结合 在当今的电子设备中,加速度传感器的应
    的头像 发表于 05-09 13:30 197次阅读

    BMA140模拟加速度传感器:技术剖析与应用指南

    BMA140模拟加速度传感器:技术剖析与应用指南 在消费电子市场中,加速度传感器的应用越来越
    的头像 发表于 05-09 13:30 174次阅读

    BMA120数字加速度传感器:低功耗消费市场的理想之选

    BMA120数字加速度传感器:低功耗消费市场的理想之选 在电子设备不断发展的今天,加速度传感器
    的头像 发表于 05-09 13:15 182次阅读

    BMA020数字加速度传感器:特性、应用与设计要点

    BMA020数字加速度传感器:特性、应用与设计要点 在当今的电子设备中,加速度传感器扮演着至
    的头像 发表于 05-09 13:15 195次阅读

    CW32L012读取MPU6050姿态数据

    随着物联网、可穿戴设备、工业倾角检测等场景的普及,低成本、低功耗的姿态检测方案成为嵌入式领域的研究热点。MPU6050 作为集成加速度计和
    的头像 发表于 01-05 16:36 1375次阅读
    CW32L012读取<b class='flag-5'>MPU6050</b>姿态<b class='flag-5'>数据</b>

    陀螺仪怎么选?

    陀螺仪型号:HLK-AS201-66=3加速度计+3陀螺仪核心优势价格最低:无磁力计和气压
    的头像 发表于 12-22 15:27 1303次阅读
    多<b class='flag-5'>轴</b><b class='flag-5'>陀螺仪</b>怎么选?

    冲击加速度传感器462系列:精准捕捉极端环境下的动态冲击--森瑟科技

    在工业测试、运动学研究和爆炸冲击监测等领域,对高g值冲击加速度的精确测量至关重要。Senther推出的462系列冲击加速度传感器,凭借其
    的头像 发表于 09-22 16:22 1602次阅读
    <b class='flag-5'>三</b><b class='flag-5'>轴</b>冲击<b class='flag-5'>加速度</b><b class='flag-5'>传感器</b>462系列:精准捕捉极端环境下的动态冲击--森瑟科技

    为什么MEMS陀螺仪是无人机飞控系统的核心传感器

    在现代无人机技术中,MEMS陀螺仪扮演着至关重要的角色。作为飞行控制系统的核心传感器,它通过实时测量飞行的角
    的头像 发表于 08-07 17:37 1561次阅读
    为什么<b class='flag-5'>三</b><b class='flag-5'>轴</b>MEMS<b class='flag-5'>陀螺仪</b>是无人机飞控系统的核心<b class='flag-5'>传感器</b>?

    **无人机飞控如何靠MEMS陀螺仪实现稳定飞行?**

    个轴向的角速度变化。 以ER-3MG-063这款高性能MEMS陀螺仪为例,我们可以看到这类传感器
    的头像 发表于 07-09 17:22 1187次阅读

    传感器数据计算质心位移轨迹,结果不理想

    背景如下 : 想要使用惯性传感器数据(包含时间戳、加速度
    发表于 06-24 17:07

    振动陀螺仪传感器的工作原理

    陀螺仪传感器,也称为角速率传感器或角速度传感器,是一种感测角速度的设备。
    的头像 发表于 06-16 16:29 1637次阅读
    振动<b class='flag-5'>陀螺仪</b><b class='flag-5'>传感器</b>的工作原理