MPU6050教程

更新时间:2023-05-23 02:08:35 阅读: 评论:0

spankboy
第错误!未定义书签。页共10页
MPU6050教程
1.1MPU6050简介
如果你想玩四轴,想搞什么空中鼠标,平衡车等待,那么MPU6050真的是太强大了,能做很多东西。
玩MPU6050的步骤:
1.学习I2C ,I2C 就是MPU6050传送数据到单片机的一种协议,类似于USB ,当然USB 还是比较有难度的。
2.了解MPU6050相关寄存器,有中文版本的,一边学一边看例程就可以获取数据了。
保全申请书3.把获取的数据进行各种处理。
1.2IIC 简介
IIC 可以去看下我们野火相关的教程,在这里只是简单地介绍下,先看下我们的书或者教程,从EEPROM 里面写入和读取数据,因为EEPROM 写入和读取数据也是根据I2C 协议来的。I2C 有分软件和硬件,软件就你通过对I2C 的时钟线和数据线,可能你不知道时钟线和数据线,那还是先去学I2C 的基础教程。
软件模拟I2C 就是根据下面的图然后再适当的时候给时钟线和数据线高低,具体可以看I2C 的协议见图1-1
图1-1IIC 起始字节时序图
这部分学习的诀窍就是:先写下I2C通讯的一个环节就好了,比如起始字节,其他的也是大同小异,直接上网找例程就好了,想要用软件模拟出全部的时序当然也可以。
还有一个方式可以用I2C读写数据,就是硬件I2C,硬件I2C就是单片机内部的电路,可以将I2C的时序用硬件电路搞出来,这样子你读写数据就方便很多了。STM32硬件I2C可以去看我们野火的教程。
1.3读取MPU6050原始数据
我们先来认识下MPU6050的硬件,这是MPU6050模块的图片,注意是模块,中间那个才是MPU6050,只有MPU6050是不够的,还要有一些外围电路才行,这就跟51芯片跟最小系统的区别一样。
图1-2MPU6050模块正面
图1-3MPU6050模块背面
管脚名称说明
VCC  3.3-5V(内部有稳压芯片)
GND地线
SCL MPU6050作为从机时IIC时钟线
SDA MPU6050作为从机时IIC数据线
XCL MPU6050作为主机时IIC时钟线
XDA MPU6050作为主机时IIC数据线
AD0地址管脚,该管脚决定了IIC地址的最低一位
INT中断引脚
这里重点讲解AD0的作用,I2C通讯中从机是要有地址的,以区别多个从机。当AD0管脚接低电平的时候,从机地址是0xD0。从MPU6050的寄存器中我们可以得到答案,MPU6050作为一个IIC从机设备的时候,有8位地址,高7位的地址是固定的,就是WHO AM I寄存器的默认——0x68,最低的一位是由AD0的连线决定的。
图1-40x68和0xD0的二进制
图1-5WHO AM I寄存器
读取原始数据这个过程中一个很重要的思路就是一步一步,确保每步都对之后就很容易读出正确的数据。我们对MPU6050进行读写传感器数据就是对MPU6050的寄存器用I2C进行读写。我们还要了解下MPU6050的寄存器,这个过程跟学习52单片机没有什么区别,就是配置寄存器,读取数据。
先来看下软件IIC读取MPU6050例程里面的初始化MPU6050的函数,1void MPU6050_Init(void)
市场营销专业前景2{
3int i=0,j=0;
4//在初始化之前要延时一段时间,若没有延时,则断电后再上电数据可能会出错
6for(i=0;i<1000;i++){
7for(j=0;j<1000;j++){
8;
9}
10}
11PMU6050_WriteReg(MPU6050_RA_PWR_MGMT_1,0x00);
耕耘是什么意思
12//解除休眠状态
13PMU6050_WriteReg(MPU6050_RA_SMPLRT_DIV,0x07);
14//陀螺仪采样率,1KHz
15PMU6050_WriteReg(MPU6050_RA_CONFIG,0x06);
16//低通滤波器的设置,截止频率是1K,带宽是5K
17
18PMU6050_WriteReg(MPU6050_RA_ACCEL_CONFIG,0x00);
19//配置加速度传感器工作在2G模式,不自检
20
护士站考公资料21PMU6050_WriteReg(MPU6050_RA_GYRO_CONFIG,0x18);
22//陀螺仪自检及测量范围,典型值:0x1
238(不自检,2000deg/s)
24}三打白骨精梗概
下面这句为什么可以解除休眠状态呢?至于为什么要接触休眠状态就要看MPU6050的datasheet。
1PMU6050_WriteReg(MPU6050_RA_PWR_MGMT_1,0x00);
2//解除休眠状态
首先Single_WriteI2C();是给MPU6050寄存器写入数据的一个函数,需要有寄存器的地址,关于寄存器的描述,教程的文件夹有两个文档。一个是中文版,一个是英文版,中文版看得不是很明白,可能翻译得不好,英语可以的可以看下英文版本的。
首先找到PWR_MGMT_1是某个寄存器的地址,其值如下
1#define MPU6050_RA_PWR_MGMT_10x6B
碱的组成我们在文档中找到地址为0x6B的寄存器,看下说明,可以知道为什么发送0x00给这个寄存器。慢慢地这样子去读,配合MPU6050的寄存器文档。获取数据也是差不多的。这个过程自己慢慢去看MPU6050的datasheet就好了,方法已经介绍。
如果整个过程顺利的话,你可以用串口获得类似下面的数据。怎么检验这些数据是不是对的,我直接
将手放在MPU6050上面,可以看到温度稍微会升高,而且我移动MPU6050的时候,数据会变化。初步证明数据是对的。
图1-6串口数据读取原始数据

本文发布于:2023-05-23 02:08:35,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/924363.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   寄存器   软件   地址
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图