热搜关键词: 电路基础ADC数字信号处理封装库PLC

pdf

Mpu6050教程

  • 1星
  • 2015-04-07
  • 1015.02KB
  • 需要1积分
  • 3次下载
标签: mpu6050教材

mpu6050教材

mpu6050基本资料,寄存器介绍。

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

猜您喜欢

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

  • LED的解决之道(从故障分析到低功率照明方法)
    eeworldpostqq
  • nanflash读写编程
    在C:\ti\C6748_StarterWare_1_20_04_01\examples\evmC6748and下的例程,是关于NANDFLASH的读写实验,此实验是基于EDMA3的NANDFLASH的读写操作。函数里面,关于EDMA3初始化以及param的参数设置做如下操作:1: hNandDmaInfo->DMAXferSetup= EMIFANANDXferSetup; //EDMA的读写配
  • 赢iPhone 8 Plus(64GB),了解Microchip的Curiosity开发板并进行配对
    [color=#000000][backcolor=inherit][backcolor=inherit][font=微软雅黑][size=3]Microchip的Curiosity开发板是一款完全集成的高性价比单片机开发平台,专门针对初次使用的用户、制造商和希望拥有一块功能丰富的快速原型开发板的用户。Curiosity开发板为利用8位、16位和32位[/size][/font][/backcol
  • 会发光的Bellylove躺椅
    由法国设计师Florence Jaffrain设计的Bellylove sofa像花一样的唯美躺椅,虽然看起来它的设计灵感来源于花朵,但事实是来源于印度洋中一种软珊瑚,唯美中透着性感。这种躺椅含有一种荧光物质,能够发出极具诱惑力的绿色光泽。[img]http://img.hc360.com/lamp/info/images/201002/201002021558503038.jpg[/img]
  • C51的一些误区和注意事项(ZT)
    1)C忌讳绝对定位。 常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned char data x;后,x的地址就是x, 你只要查看这个参数,就可以在程序中知道具体的地址了。所以俺一看见要使用绝对定位的人,第一印象就是:这大概是个
  • 求教啦!
  • 请问ATMege16的AD采样程序该如何写啊!
  • 蓝牙生活小精灵
  • 水立方LED建筑物景观照明及控制系统
  • 物联网发展的三大编程语言

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×