MPU6050传感器在单个芯片上具有许多功能。它由一个MEMS加速度计,一个MEMS陀螺仪和温度传感器组成。该模块在将模拟值转换为数字时非常准确,因为每个通道都有16位的模数转换器硬件。该模块能够同时捕获x,y和z通道。它具有一个I2C接口,可与主机控制器进行通信。这个MPU6050模块是具有两个加速度计和陀螺仪的小型芯片。对于无人机,机器人,运动传感器等许多应用而言,这是非常有用的设备。也称为陀螺仪或三轴加速度计。
今天,在本文中,我们将使MPU6050陀螺仪与Arduino交互,并通过16x2 LCD显示这些值。
所需组件:
- Arduino Uno
- MPU-6050
- 10K锅
- 跳线
- 面包板
- USB电缆
- 电源供应
MPU6050陀螺仪传感器:
MPU-6050是单芯片中的8针6轴陀螺仪和加速度计。默认情况下,该模块可用于I2C串行通信,但可通过配置其寄存器将其配置为SPI接口。对于I2C,它具有SDA和SCL线。几乎所有引脚都是多功能的,但在这里我们仅使用I2C模式引脚进行操作。
引脚配置:
Vcc:-此引脚用于相对于地面为MPU6050模块供电
GND:这是接地引脚
SDA: -SDA引脚用于控制器和mpu6050模块之间的数据
SCL: -SCL引脚用于时钟输入
XDA:-这是传感器I2C SDA数据线,用于配置和读取外部传感器((在本例中未使用)(可选))
XCL:-这是用于配置和读取外部传感器的传感器I2C SCL时钟线((在本例中未使用)((可选))
ADO: -I2C从站地址LSB(在我们的情况下不适用)
INT:-中断引脚,用于指示数据就绪。
描述:
在本文中,我们将使用带Arduino的MPU6050在LCD上显示温度,陀螺仪和加速度计的读数。该模块为我们提供了输出中的行值和归一化值,但是行值不稳定,因此这里我们在LCD上显示了归一化值。如果仅需要加速度计值,则还可以将加速度计ADXL335与Arduino一起使用。
在这个项目中,我们首先在LCD上显示了一个温度值,然后在10秒钟后显示了陀螺仪值,在10秒钟后显示了加速度计读数,如下图所示:
电路图和说明:
电路图,与Arduino的接口MPU6050,是很简单的在这里我们使用了LCD和MPU6050。在这里,我们使用了笔记本电脑的USB电源。一个10k的电位器用于控制LCD的亮度。与MPU6050相连,我们完成了5个连接,其中将MPU6050的3.3v电源和地连接到Arduino的3.3v和地。MPU6050的SCL和SDA引脚与Arduino的A4和A5引脚连接。MPU6050的INT引脚连接到Arduino(D2)的中断0。LCD的RS,RW和EN直接连接到Arduino的8,gnd和9。数据引脚直接连接到数字引脚10、11、12和13。
编程说明
对于该项目,编程部分也很容易。在这里,我们已使用此MPU6050库将其与Arduino接口。因此,首先,我们需要从GitHub下载MPU6050库并将其安装在Arduino IDE中。
之后,我们可以在示例中找到示例代码。用户可以通过直接将代码上传到Arduino来测试该代码,并可以通过串行监视器查看其值。或者用户可以使用本文末尾给出的代码在LCD和串行监视器上显示值。
在编码中,我们包含了一些必需的库,例如MPU6050和LCD。
#包括
在 设置 功能中,我们初始化两个设备并在LCD上写欢迎信息
void setup(){lcd.begin(16,2); lcd.createChar(0,degree); Serial.begin(9600); Serial.println(“ Initialize MPU6050”); while(!mpu.begin(MPU6050_SCALE_2000DPS,MPU6050_RANGE_2G)){lcd.clear(); lcd.print(“找不到设备”); Serial.println(“找不到有效的MPU6050传感器,请检查接线!”);延迟(500); } count = 0; mpu.calibrateGyro(); mpu.setThreshold(3);在 循环 功能中,我们每10秒调用了三个功能,用于在LCD上显示温度,陀螺仪和加速度计读数。这三个函数是 tempShow,gyroShow 和 accelShow ,您可以在本文结尾给出的完整Arduino代码中检查这些函数:
void loop(){lcd.clear(); lcd.print(“温度”); 长st = millis(); Serial.println(“ Temperature”); 而(millis()
MPU6050陀螺仪和加速度计均用于检测任何设备的位置和方向。陀螺仪利用地球重力来确定x,y和z轴位置,并且加速度计会根据运动的变化率进行检测。我们已经在许多项目中将加速计与Arduino一起使用,例如:
- 基于加速度计的手势控制机器人
- 基于Arduino的车辆事故警报系统
- 使用Arduino的地震探测器警报