ADXL345三轴加速度计怎么接线?Arduino测倾角读三轴加速度的I2C接线和代码避坑

2026-10-19 09:45:07 37阅读

想让设备知道自己是平是斜、是不是被碰了一下、摔没摔,靠的就是加速度计。ADXL345是一款非常经典的三轴加速度传感器,13位分辨率、量程可切±2g到±16g,支持I2C或SPI,功耗极低,被广泛用在倾角检测、运动感应、计步和自由落体检测上。这篇把引脚、接线、读数讲清楚。

ADXL345引脚和I2C接线

模块上常见的脚有VCC、GND、SDA、SCL,再加一个CS片选和一个SDO。用I2C时只要四根线:VCC接3.3V(多数带板的也兼容5V)、GND接地、SDA接A4、SCL接A5,非常简单。注意I2C模式下CS脚要接高电平(接3.3V),I2C默认地址是0x53,写程序时别填错。

ADXL345加速度计I2C接Arduino连接示意图,SDA接A4、SCL接A5

图上这个接法很规范——把GND、VCC、SDA、SCL四根线接好,板上CS拉高进入I2C模式即可。接完后可以先写个I2C扫描程序确认能扫到0x53,扫不到最可能就是SDA/SCL接反或供电不稳。

读三轴加速度的代码思路

库可以用官方或DFRobot的ADXL345库。初始化后,从寄存器0x32开始连续读6个字节,分别是X、Y、Z三轴的原始数据(各占两字节),把每个轴拼成16位有符号整数,再除以量程对应的灵敏度系数(比如±2g档除以256,单位就是每单位多少毫g),就得到三轴加速度值。静止平放时,Z轴应该接近1g(重力加速度),X、Y接近0。

ADXL345与Arduino的I2C接线图

这张I2C接线图把A4走SDA、A5走SCL、电源和地都标得明明白白。只要四根线就能让Arduino和加速度计“对话”,是入门灵巧又省事的接法。

三个典型的应用和避坑

一是测倾角:静止时用atan2对X、Y、Z的比例算roll和pitch,就能知道倾斜了多少度,做平衡检测和姿态显示很准。二是震动/摔落检测:它内置活动/静止检测和自由落体检测,能配置中断脚在特定阈值下唤醒主控。三是避坑——加速度计表现的是“加速度”,运动加速或抖动时会混入动态成分,所以测静态倾角很稳,一旦设备在动,想拿它当陀螺仪就得搭配陀螺仪做融合(MPU6050就是这俩合体)。另外杜邦线要插稳,接触不良会读到乱跳的数值,让人误以为传感器坏了。


作者:云台四足控
链接:https://www.aiddithome.com/p/8c15411aef89a.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
探头看一眼
1楼 · 2026-10-19 09:45:09

拿来做自由落体检测好使,做防摔提醒挺有意思

阿强焊点总飞
2楼 · 2026-10-19 09:45:08

默认地址0x53,先跑I2C扫描确认,扫不到多半是SDA/SCL接反

第三次终于亮了
3楼 · 2026-10-19 09:45:08

CS必须拉高进I2C模式,之前没接高一直读不出来,查半天

板砖搬不动
4楼 · 2026-10-19 09:45:07

静止测倾角最准,一动就飘,后来配了陀螺仪做融合才好