今日主要学习一款倾角传感器——MPU6050,往后对单片机原理基础讲的会比较少,更倾向于简单粗暴地贴代码,因为经过前些日子对MSP432的学习,对原理方面也有些熟络了,除了在新接触它时会对其引脚、时钟、总线等进行仔细一些的研究之外,其余驱动方面便是照搬经验了~~
本文尝试使用STM32 F103C8T6通过IIC通信驱动MPU6050,文章提供源码、原理讲解、实践操作与结果截图,测试工程下载。MPU6050
下图为MPU6050:
MPU6050是由三个陀螺仪和三个加速度传感器组成的6轴运动处理组件,是一款六轴(三轴加速度+三轴角速度(陀螺仪))传感器
1. VCC:构成8位的IIC地址模块自带了 3.3V 超低压差稳压芯片,给 MPU6050 供电,因此外部供电可以选择:3.3V / 5V 都可以
2.GND:不多说
3.SCL、SDA:IIC通讯引脚
另外,IIC_SDA 和 IIC_SCL 带了 4.7K上拉电阻,外部可以不用再加上拉电阻了
4.XDA、XCL:XDA 跟 XCl是用来外接电磁传感器,即使模块不动,数值也会有波动。而外加电磁传感器就是更好的解决这一问题。
5.AD0: AD0 是从 IIC 接口(接 MCU)的地址控制引脚,该引脚控制IIC 地址的最低位。如果接 GND,则 MPU6050 的 IIC 地址是:0X68,如果接 VDD,则是0X69。另外,MPU_AD0 自带了 10K 下拉电阻,当 AD0悬空时,默认 IIC 地址为(0X68)。
6.INT:在MPU6050 中有个INT 引脚,每当MPU6050 有数据输出时,引脚INT 有相应的电平变化。可以将其触发外部中断作为控制周期。当MPU6050 的读取一次数据,就控制一次,可以很好地保持MPU6050 数据的实时性。
|