将ADXL345加速度计与Arduino UNO连接的方法

描述

  我们都知道加速度计和陀螺仪,它们主要用于检测加速度。虽然加速度计可以测量线性加速度,但陀螺仪可以帮助找到旋转加速度。陀螺仪 用于测量角速度,该角速度使用地球的重力来确定运动中物体的方向。有一个像 MPU6050 这样的传感器,它同时具有加速度计和陀螺仪,它作为一个 惯性测量单元 (IMU) 来查找方向、位置和速度。

  在这里,我们讨论的是ADXL345 加速度计,它用于测量 x、y 和 z 轴的加速度或速度变化。这些小型传感器用于汽车和自行车以检测事故以展开安全气囊,还用于手机中用于指南针和位置跟踪等各种应用。

  加速度计传感器的类型

  市场上有许多类型的MEMS 加速度计传感器。它们可以根据精度、功耗和接口进行分类。所有这些传感器都是便携式的,可以安装在任何类型的设备中,例如可穿戴设备。这些传感器测量 3 轴 (x,y,z) 的加速度。

  一些广泛使用的传感器是:

  ADXL335

  ADXL345

  ADXL356

Arduino

  这些加速度计传感器非常受欢迎,除了这三个之外,还有许多其他加速度计传感器,如 ADXL354、ADXL355、ADXL372 等。

  让我们看看这些传感器之间的区别。

  比较:ADXL335 与 ADXL345 与 ADXL356

Arduino

  在上述三者中,ADXL345 因其数字特性而易于接口。但它的编程很困难,因为它适用于 SPI/I2C 协议。ADXL345 可以测量静态和动态加速度,适用于移动应用。此外,这些传感器经过实验室校准,不需要任何进一步的校准。

Arduino

  在这里,我们将使用ADXL345 传感器的 Adafruit 库将其与 Arduino Uno 连接。

  所需组件

  Arduino UNO

  ADXL345 加速度计

  公母线

  面包板

  威廉希尔官方网站 原理图

  ADXL345加速度计与Arduino接口的威廉希尔官方网站 图如下:

Arduino

  ADXL345 Arduino 连接:

  连接 Arduino 的 A4 引脚 (SDA) -》 adxl345 的 SDA 引脚

  连接 Arduino 的 A5 引脚 (SCL) -》 adxl345 的 SCL 引脚

  连接 Arduino 的 GND -》 adxl345 的 GND 引脚

  连接 Arduino 的 5V -》 adxl345 的 Vcc

Arduino

  ADXL345 Arduino代码说明

  对于这个ADXL345 Arduino项目,我们需要两个用于ADXL345传感器的库。

  阿达果ADXL345

  Adafruit 统一传感器

  要下载上述库,请打开 Arduino IDE 并转到Sketch -》 Include Library -》 Manage Libraries。 搜索 Adafruit ADXL345 并安装。同样,搜索 Adafruit Unified sensor 并安装。

Arduino

  现在,我们准备好编写代码了。示例代码可在文件 -》 示例 -》 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

  尝试向各个方向缓慢移动传感器并观察读数。

Arduino

  这就是加速度计如何与 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);

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分