ADXL345三轴加速度计怎么接线?Arduino测姿态和震动检测

2026-10-21 13:21:08 35阅读

想知道设备是歪的还是正的,被碰了一下,还是在晃,ADXL345是一块口碑很好的三轴加速度计。它小巧、功耗低、量程可选,靠I2C或SPI通信,测倾角、震动检测、计步这些项目都能用它。这篇文章把接线和读法讲清楚。

ADXL345是什么,I2C地址记住0x53

ADXL345是一颗14位的三轴加速度传感器,能从静止加速度(重力)里算出倾角,从动态加速度变化里捕捉震动和运动。它支持±2g/±4g/±8g/±16g几个量程,分辨率在±2g下能达到不错的精度,数据通过I2C(地址0x53)或SPI读出。

市面上大多数是Breakout小板,引出VCC、GND、SCL、SDA,有的还有CS(片选)、SDO。用I2C就要把CS拉高,SDO决定I2C地址的最后一bit,习惯上SDO接地时地址是0x53。引脚示意见下。

接线表:I2C四根线搞定

ADXL345用I2C连Arduino Uno最省事:VCC接3.3V(也能接5V,但推荐3.3V更稳妥)、GND接GND、SCL接A5(Uno的SCL)、SDA接A4(Uno的SDA)。接好后库内设好0x53地址即可读到三轴原始值。

提醒一句,用I2C时要保证CS引脚的状态正确——如果是带CS的模块,把CS接高电平(接VCC)来选I2C模式,否则它可能被当成SPI设备。不同厂家的板子略有差异,先看板上的丝印标注再接线。

读数:原始值怎么换算成倾角

用库读回来的x、y、z是原始数,除以灵敏度系数就得到以g为单位的加速度。倾角计算用反三角函数:定义在平面上放着时,重力方向上的那轴接近±1g,其他轴接近0,通过这些值的比例就能算出相对水平面的倾斜角。

实际项目里常见做法是先水平校准(把模组静态放平记录零点),再做低通滤波去掉抖动,读数会稳很多。震动检测则相反,盯原始值的波动幅度,超过阈值就认为是“被震动或碰撞”。

把二值逻辑写好,就能做姿态显示、桌面被碰报警、跌倒检测、计步器这些项目。ADXL345是理解I2C通信和加速度传感很好的一课,四根线接对,姿态和震动就到手。


作者:开源复现员
链接:https://www.aiddithome.com/p/308b1acbaa501.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
5条评论
入门没多久的新手
1楼 · 2026-10-21 13:21:10

盯原始值波动幅度就能做桌面震动报警,挺好用

线比代码多
2楼 · 2026-10-21 13:21:10

从加速度反推倾角的思路很经典,值得上手练一遍

调参到凌晨
3楼 · 2026-10-21 13:21:09

I2C地址0x53,SCL接A5、SDA接A4这四根线就行

拆开看看再说
4楼 · 2026-10-21 13:21:09

用I2C记得把CS拉高,不然会被当成SPI设备

刷着刷着入坑了
5楼 · 2026-10-21 13:21:09

先水平校准再低通滤波,倾角读数稳很多