0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

科技观察员 来源:circuitdigest 作者:Rishabh Jain 2022-08-18 17:15 次阅读

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

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

加速度计传感器的类型

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

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

ADXL335

ADXL345

ADXL356

poYBAGL-AweAckExAAQXh9B5pag638.png

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

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

比较:ADXL335 与 ADXL345 与 ADXL356

pYYBAGL-AwSAbYiVAAAT3blZQK0227.png

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

poYBAGL-AwCAbEQ1AAJgmfVe-iA304.png

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

所需组件

Arduino UNO

ADXL345 加速度计

公母线

面包板

电路原理

ADXL345加速度计与Arduino接口的电路图如下:

pYYBAGL-AvyAFisEAAFuD3YGePo109.png

ADXL345 Arduino 连接:

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

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

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

连接 Arduino 的 5V -》 adxl345 的 Vcc

pYYBAGL-AvmAOxxRAAS84xErWok563.png

ADXL345 Arduino代码说明

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

阿达果ADXL345

Adafruit 统一传感器

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

pYYBAGL-AvWAcRyLAAInflYMKBY835.png

现在,我们准备好编写代码了。示例代码可在文件 -》 示例 -》 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 轴的加速度读数,如下所示。

pYYBAGL-Au-AaOIqAALGGBOLygw462.png

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

pYYBAGL-AuyAAPHJAAMlrVprwBA616.png

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

}

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

    关注

    6

    文章

    660

    浏览量

    45406
  • ADXL345
    +关注

    关注

    13

    文章

    68

    浏览量

    33090
  • Arduino
    +关注

    关注

    184

    文章

    6425

    浏览量

    184769
收藏 人收藏

    评论

    相关推荐

    ADXL345三轴数字加速度计的驱动设计与实现

    移动设备的广泛应用增加对移动过程中各种参数的检测需求。ADXL345三轴数字加速度计可以用来检测加速度、进而测量倾斜角度等。在这一篇中,我们将讨论ADXL345三轴数字
    的头像 发表于 12-08 15:34 6271次阅读
    <b class='flag-5'>ADXL345</b>三轴数字<b class='flag-5'>加速度计</b>的驱动设计与实现

    请问ADXL345输出加速度的最小有效位数是?

    ADXL345加速度计采集的值分辨力是多少呢?最小有效位数
    发表于 12-28 08:15

    Accessory Shield学习6:三轴加速度计ADXL345

    本章我们讲一个具有运动风的技能——三轴加速度计,这货能干啥?典型的就是测量加速度值、获取当前的空间姿态......原理大放送:主角ADXL345是ADI公司推出的一款小而薄的超低功耗3轴加速度
    发表于 03-28 14:52

    请问ADXL345输出加速度的最小有效位数是?

    ADXL345加速度计采集的值分辨力是多少呢?最小有效位数
    发表于 07-24 08:51

    ADXL354/355与ADXL345都是三轴加速度计,请问都可以测倾角吗?

    我想请问一下ADXL354/355与ADXL345都是三轴加速度计345可以测两个倾角,想请问一下354/355也可以测两个倾角吗?谢谢~~~
    发表于 08-02 06:22

    温度变化及振动条件下使用加速度计测量倾斜

    354/ADXL355/ADXL356/ADXL357的测量范围选择适用于倾斜应用的ADXL35x系列加速度计
    发表于 10-26 11:12

    ADXL345使用方法和调试经验

    享下ADXL345使用,欢迎一起讨论学习。ADXL345是一种三轴加速度计,当ADXL345沿检测轴正向加速时,它对正
    发表于 03-29 13:57

    怎样使用4线SPI驱动ADXL345数字加速度计

    ADXL345为3轴数字加速度计。支持SPI或I2C访问。网上例子大多是I2C,这里使用4线SPI。一、遇过的坑调试过程花了几个小时,遇到一些小坑。1.开始的时候,无论如何都无法读取芯片ID。这可
    发表于 02-17 08:07

    ADXL345:3轴,±2g数字加速度计

    ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达&#177; 16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。 ADXL345非常适
    发表于 11-27 16:58 210次下载
    <b class='flag-5'>ADXL345</b>:3轴,±2g数字<b class='flag-5'>加速度计</b>

    基于3轴加速度计ADXL345的跌倒检测应用

    基于3轴加速度计ADXL345的跌倒检测应用 ADXL345是ADI公司的三轴数字加速度传感器,主要应用于消费电子的微型惯性器件,最大可感知土16g的
    发表于 11-28 15:20 359次下载
    基于3轴<b class='flag-5'>加速度计</b><b class='flag-5'>ADXL345</b>的跌倒检测应用

    ADI公司MEMS加速度计ADXL345简介与例程

    ADI公司MEMS加速度计ADXL345简介与例程
    发表于 12-29 10:36 0次下载

    ADXL345 MEMS加速度计开发板的设置和使用方法

    ADXL345 MEMS加速度计开发板。由ADI公司的Nitzan Gadish说明如何设置和使用ADXL345开发板。该板能够捕捉3轴在时间上的数据,并以excel表格和图形的方式显示输出。
    的头像 发表于 07-16 06:06 4576次阅读

    AN-1588:使用连接到ADuC7024精密模拟微控制器的ADXL345数字加速度计检测低g加速度

    AN-1588:使用连接到ADuC7024精密模拟微控制器的ADXL345数字加速度计检测低g加速度
    发表于 05-08 17:19 13次下载
    AN-1588:使用<b class='flag-5'>连接</b>到ADuC7024精密模拟微控制器的<b class='flag-5'>ADXL345</b>数字<b class='flag-5'>加速度计</b>检测低g<b class='flag-5'>加速度</b>

    ADXL345加速度计屏幕方向开源

    电子发烧友网站提供《ADXL345加速度计屏幕方向开源.zip》资料免费下载
    发表于 11-01 11:38 0次下载
    <b class='flag-5'>ADXL345</b><b class='flag-5'>加速度计</b>屏幕方向开源

    ADXL345超低功耗3轴加速度计应用

    电子发烧友网站提供《ADXL345超低功耗3轴加速度计应用.pdf》资料免费下载
    发表于 10-20 16:57 1次下载
    <b class='flag-5'>ADXL345</b>超低功耗3轴<b class='flag-5'>加速度计</b>应用