我们都知道加速度计和陀螺仪,它们主要用于检测加速度。虽然加速度计可以测量线性加速度,但陀螺仪可以帮助找到旋转加速度。陀螺仪 用于测量角速度,该角速度使用地球的重力来确定运动中物体的方向。有一个像 MPU6050 这样的传感器,它同时具有加速度计和陀螺仪,它作为一个 惯性测量单元 (IMU) 来查找方向、位置和速度。
在这里,我们讨论的是ADXL345 加速度计,它用于测量 x、y 和 z 轴的加速度或速度变化。这些小型传感器用于汽车和自行车以检测事故以展开安全气囊,还用于手机中用于指南针和位置跟踪等各种应用。
加速度计传感器的类型
市场上有许多类型的MEMS 加速度计传感器。它们可以根据精度、功耗和接口进行分类。所有这些传感器都是便携式的,可以安装在任何类型的设备中,例如可穿戴设备。这些传感器测量 3 轴 (x,y,z) 的加速度。
一些广泛使用的传感器是:
ADXL335
ADXL345
ADXL356
这些加速度计传感器非常受欢迎,除了这三个之外,还有许多其他加速度计传感器,如 ADXL354、ADXL355、ADXL372 等。
让我们看看这些传感器之间的区别。
比较:ADXL335 与 ADXL345 与 ADXL356
在上述三者中,ADXL345 因其数字特性而易于接口。但它的编程很困难,因为它适用于 SPI/I2C 协议。ADXL345 可以测量静态和动态加速度,适用于移动应用。此外,这些传感器经过实验室校准,不需要任何进一步的校准。
在这里,我们将使用ADXL345 传感器的 Adafruit 库将其与 Arduino Uno 连接。
所需组件
Arduino UNO
ADXL345 加速度计
公母线
面包板
威廉希尔官方网站 原理图
ADXL345加速度计与Arduino接口的威廉希尔官方网站 图如下:
ADXL345 Arduino 连接:
连接 Arduino 的 A4 引脚 (SDA) -》 adxl345 的 SDA 引脚
连接 Arduino 的 A5 引脚 (SCL) -》 adxl345 的 SCL 引脚
连接 Arduino 的 GND -》 adxl345 的 GND 引脚
连接 Arduino 的 5V -》 adxl345 的 Vcc
ADXL345 Arduino代码说明
对于这个ADXL345 Arduino项目,我们需要两个用于ADXL345传感器的库。
阿达果ADXL345
Adafruit 统一传感器
要下载上述库,请打开 Arduino IDE 并转到Sketch -》 Include Library -》 Manage Libraries。 搜索 Adafruit ADXL345 并安装。同样,搜索 Adafruit Unified sensor 并安装。
现在,我们准备好编写代码了。示例代码可在文件 -》 示例 -》 Adafruit ADXL345 -》 sensortest 中找到
1. 首先,包含所有必需的库头文件以支持传感器的功能。在这里,我们还使用线库进行 I2C 通信。
#include#include #include
2. 使用任何变量(如accel )创建一个实例,以使用 ADXL345 Arduino 库的各种功能。
Adafruit_ADXL345_Unified 加速度 = Adafruit_ADXL345_Unified();
3. 在void setup()函数中,使用Serial.begin()函数初始化串行通信以在串行监视器上打印数据。现在,检查是否连接了有效的 ADXL 传感器。我们将检查accel.begin()函数返回的结果,如果它返回 false,则打印一条消息,表明没有找到有效的传感器。
无效设置() { 序列号.开始(9600); if(!accel.begin()) { Serial.println("没有找到有效的传感器"); 而(1); } }
4. 在void loop()函数中,创建一个变量以使用sensors_event_t 结构。使用此变量(在本例中为“事件”)使用.getevent()函数填充结构成员。现在,使用event.acceleration.x()函数打印 x、y、z 轴的加速度值。
无效循环() { sensor_event_t 事件; accel.getEvent(&事件); Serial.print("X:"); Serial.print(event.acceleration.x); 序列号.print(""); Serial.print("Y:"); Serial.print(event.acceleration.y); 序列号.print(""); Serial.print("Z:"); Serial.print(event.acceleration.z); 序列号.print(""); Serial.println("m/s^2"); 延迟(500); }
本文末尾提供了带有演示视频的完整代码。
测试 ADXL345 加速度计 Arduino 接口
最后,将 ADXL345 传感器与 Arduino UNO 正确连接,并将代码上传到 Arduino Uno 板。然后打开串行监视器,您将看到 x、y、z 轴的加速度读数,如下所示。
尝试向各个方向缓慢移动传感器并观察读数。
这就是加速度计如何与 Arduino UNO 一起使用来检测 x、y 和 z 轴的变化。
#include
#include
#include
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();
无效设置(无效)
{
Serial.begin(9600);
if(!accel.begin())
{
Serial.println("未找到有效传感器");
而(1);
}
}
无效循环(无效)
{
传感器事件_t事件;
accel.getEvent(&事件);
Serial.print("X:"); Serial.print(event.acceleration.x); 序列号.print("");
Serial.print("Y:"); Serial.print(event.acceleration.y); 序列号.print("");
Serial.print("Z:"); 串行。打印(event.acceleration.z);序列号.print("");
Serial.println("m/s^2");
延迟(500);
}
全部0条评论
快来发表一下你的评论吧 !