Arduino I2C + 三轴加速度计ADXL345

本文介绍了如何使用Arduino Pro Mini与ADXL345三轴数字加速度计进行I2C通信。ADXL345是一款低功耗、高分辨率的加速度计,支持I2C和SPI接口。在连接和调试过程中,需要注意数据读取速率不超过I2C总线限制,并通过中断事件来判断数据是否准备好。测试代码展示了以1.56Hz的ODR获取并打印加速度值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ADXL345是ADI公司生产的三轴数字加速度计芯片,与ST的LIS3DH功能接近。主要特性有:

  • 工作电压:2.0 ~ 3.6V
  • 功耗:待机功耗0.1μA;工作时与数据输出频率(ODR)有关,如ODR<10 Hz时30μA
  • 接口:I2C;三线/四线制SPI
  • 分辨率:可选择,最大13-bit
  • 内置FIFO
  • single tap/double tap检测
  • 自由落体检测
  • 两个可编程中断输出脚
  • 封装:3 x 5 x 1 mm LGA

管脚定义

与Arduino的连接

用工作于3.3V/8MHz版本的Arduino Pro Mini进行调试。管脚定义、连接方法与调试LIS3DH时类似。采用I2C接口进行通讯,未利用FIFO和INT1、INT2中断引脚。

ADXL345       Pro Mini (3.3V)

VDD <------> 3.3V

GND <------> GND

SCL <------>  A5 (SCL)

SDA <------> A4 (SDA)

功能调试

1. 操作方法亦和LIS3DH类似。但ADXL345似乎没有与LIS3DH的STATUS_REG寄存器,而是设定DATA_READY中断,然后利用INT_SOURCE寄存器判断是否有中断事件发生,从而判断是否有新的测量值。

2. 留意设置的ODR频率不要超出I2C总线的数据读取速率。如Arduino的I2C总线时钟频率为100kHz,则可设置的最大ODR为200Hz。

测试代码

  1 /*
  2     Measurement of acceleration values using motion sensor ADXL345 
  3 */
  4 #include <Wire.h>
  5 
  6 #define ADDRESS_ADXL345 0x53
  7 #define DATA_FORMAT 0x31
  8 #define BW_RATE 0x2C
  9 #define POWER_CTL 0x2D
 10 #define INT_ENABLE 0x2E
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值