|
众所周知,加速度计和陀螺仪主要用于检测加速度。加速度计可以测量线性加速度,而陀螺仪可以帮助找到旋转加速度。陀螺仪用于测量角速度,该角速度使用地球的重力来确定运动对象的方向。像MPU6050这样的传感器同时具有加速度计和陀螺仪,并且可以作为惯性测量单元(IMU)来查找方向、位置和速度。
在本篇文章中,我们将主要介绍ADXL345加速度计,该加速度计用于测量x、y和z轴上的加速度或速度变化。这些小型传感器用在汽车和自行车中,以检测安全气囊展开时的事故,还用在移动电话中,用于各种应用,例如指南针和位置跟踪。
加速度传感器的类型 市场上有许多类型的MEMS加速度传感器。可以根据精度、功耗和接口对其进行分类。所有这些传感器都是便携式的,可以安装在任何类型的设备中,例如可穿戴设备。这些传感器测量3轴(x、y、z)的加速度。
一些广泛使用的传感器是: ● ADXL335 ● ADXL345 ● ADXL356
这些加速度传感器非常受欢迎,除了这三种加速度传感器外,还有许多其他加速度传感器,例如ADXL354、ADXL355、ADXL372等。
让我们看看这些传感器之间的区别。 | ADXL356 | ADXL345 | ADXL335 | 量程 | ±10g至±40g | ±16g | ±3g,小量程,具有精确的读数 | 接口 | 模拟 | SPI、I2C | 模拟 | 功耗 | 低,典型值:150µ | 低,典型值:140µ | 标准,典型值:350µ | 价格 | 高 | 低 | 最低 |
在以上三种之中,ADXL345由于其数字特性而易于连接。但是它的编程很困难,因为它可以在SPI / I2C协议上工作。 ADXL345可以测量静态和动态加速度,适用于移动应用。而且,这些传感器都经过实验室校准,不需要任何进一步的校准。
在这里,我们将使用ADXL345传感器的Adafruit库将其与Arduino Uno连接。
所需的组件 ● Arduino UNO开发板 ● ADXL345加速度计 ● 连接导线 ● 面包板
电路图 下面给出了ADXL345加速度传感器与Arduino连接的电路图:
ADXL345 Arduino代码说明 对于此ADXL345 Arduino项目,我们需要两个ADXL345传感器库。 ● Adafruit ADXL345 ● Adafruit Unified sensor
要下载上述库,请打开Arduino IDE并转至Sketch-> Include Library-> Manage Libraries。搜索并安装Adafruit ADXL345。同样,搜索Adafruit Unified sensor并安装。
现在,我们准备编写代码。可以在Files -> Example -> Adafruit ADXL345 -> sensortest中找到示例代码。 1. 首先,包括所有必需的库头文件以支持传感器的功能。在这里,我们将使用wire库用于I2C通信。 - #include <Wire.h>
- #include <Adafruit_Sensor.h>
- #include <Adafruit_ADXL345_U.h>
复制代码2. 通过使用诸如accel之类的任何变量来使用ADXL345 Arduino库的各种函数来创建实例。 - Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();
复制代码3. 在void setup()函数中,使用Serial.begin()函数初始化串口通信以在串口监视器上打印数据。现在,检查是否连接了有效的ADXL传感器。我们将检查accel.begin()函数返回的结果是否返回false,然后打印一条消息,指出找不到有效的传感器。 - void setup()
- {
- Serial.begin(9600);
- if(!accel.begin())
- {
- Serial.println("No valid sensor found");
- while(1);
- }
- }
复制代码4. 在void loop()函数中,创建一个变量以使用sensors_event_t结构体。使用此变量(在本例中为“event”)通过.getevent()函数填充结构成员。现在,使用event.acceleration.x()函数在x、y、z轴上打印加速度值。 - void loop()
- {
- sensors_event_t event;
- accel.getEvent(&event);
- Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("");
- Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("");
- Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print("");
- Serial.println("m/s^2 ");
- delay(500);
- }
复制代码
测试ADXL345加速度计与Arduino连接 最后,将ADXL345传感器与Arduino UNO正确连接,并将代码上传到Arduino Uno开发板上。 然后打开串口监视器,您将在x、y、z轴上看到加速度读数,如下所示。
尝试在所有方向上缓慢移动传感器,并观察读数。
因此,以上就是将加速度计与Arduino UNO一起使用以检测x、y和z轴上的变化的方式。
代码 以下是本篇文章使用的完整代码:
main.rar
(365 Bytes, 下载次数: 106)
|