Arduino IIC小应用
IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。
IIC总线一共有四根线,分别是VCC,GND,SCL,SDA。SCL的为时钟线,SDA为数据线。 I2C总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。
IIC发送数据是8位数据(即8个0或1)为一个小单元一起发送。整个协议发送的顺序如下: 主发从收:主机发送 START 信号-> 主机发送地址 -> 从机发送ACK应答 -> (主机发送数据 -> 从机发送ACK应答 (循环)) -> 主机发送STOP信号 或 主机发送 START 信号启动下一次传输 主收从发:主机发送 START 信号-> 从机发送发地址 -> 主机发送ACK应答 -> (从机发送数据 -> 主机发送ACK应答 (循环)) -> 接受至最后一个字节时,主机发送NACK -> 主机发送 STOP 信号或 主机发送START信号 启动下一次传输 。
MPU6050数据在寄存器中的地址:
0x3B,加速度计的X轴分量高八位
0x3C,加速度计的X轴分量低八位
0x3D,加速度计的Y轴分量高八位
0x3E,加速度计的Y轴分量低八位
0x3F,加速度计的Z轴分量高八位
0x40,加速度计的Z轴分量高八位
0x41,当前温度TEMP高八位
0x42,当前温度TEMP低八位
0x43,绕X轴旋转的角速度高八位
0x44,绕X轴旋转的角速度低八位
0x45,绕Y轴旋转的角速度高八位
0x46,绕Y轴旋转的角速度低八位
0x47,绕Z轴旋转的角速度高八位
0x48,绕Z轴旋转的角速度低八位
接线方式
MPU6050 Arduino uno
VCC —— 3.3V/5V
GND —— GND
SCL —— SCL
SDA —— SDA
以下是在ARDUINO上面具体实现代码 在Arduino ide 1.81版本编译通过
|