SW-420振动传感器怎么接线?Arduino震动检测报警和去抖防误触发避坑

2026-10-21 09:39:47 35阅读

想让设备“感知”到有人在敲它、门被撞到、或者电机停转了,SW-420振动传感器是最简单直接的选择。它内部带一颗弹簧式振动片和一个比较器,一有震动就输出高电平,做防盗报警、电机运行检测、拍手开关都能用。这篇把接线、读法与防误触发一次讲清楚。

SW-420振动传感器模块的实拍图

SW-420怎么接线:数字输出直读

SW-420模块常用四个引脚:VCC接3.3或5V、GND接地、D0是数字输出脚(接Arduino一个数字输入)、A0是模拟输出脚(可选)。它板载一个蓝色可调电位器,用来调振动灵敏度。接好线后,Arduino只要digitalRead(A0对应的数字脚)就行,静置时是低电平,有振动时翻成高电平。

SW-420振动传感器模块的引脚定义与接线标注图

这张图把模块上的引脚和元件关系标得很清楚:红线接起来的就是数字输出,用来给Arduino判断有没有震到。板上的蓝色电位器顺时针拧灵敏度更高,逆时针更“抗抖”,装之前先调到合适的档位。

代码思路:检测次数或持续状态

最基础的就是在循环里digitalRead数字脚,读到高电平就点亮LED或触发报警。因为物理振动是一连串脉冲,想判断“震了几下”可以计上升沿次数,做撞击计数;想做“有没有持续震动”(比如洗衣机在不在工作)则要统计一个时间窗内高电平出现的频率,超过阈值才判定在工作。串口打印出来观察最直观。

防误触发两个招

一是机械振动触发天然有抖动,直接while死循环等它会卡住主程序,务必在读到变化后加一段短的延时去抖(比如几十毫秒后再确认一次),或者用millis()做非阻塞计时。二是灵敏度别拉太满,环境里轻微噪声也会误触发,调到“明显一敲才响应”最合适;另外SW-420对“持续型”振动和“一下子的敲击”表现不同,做报警时想想自己想抓的是哪种。


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


登录 后发表评论
4条评论
刷着刷着入坑了
1楼 · 2026-10-21 09:39:48

想判断有没有持续震动,统计一个时间窗内触发次数更靠谱

线比代码多
2楼 · 2026-10-21 09:39:48

做防盗报警这个挺便宜,敲一下就叫相当灵敏

参数党小马
3楼 · 2026-10-21 09:39:47

机械振动带抖动,读到变化先延时去抖再确认一次

调参到凌晨
4楼 · 2026-10-21 09:39:47

灵敏度电位器别拉满,不然有点动静就误报