想让设备感知“被碰了一下、被震了一下”,SW-420震动传感器是最便宜直接的方案。它里面是一颗弹簧式震动开关加一颗LM393比较器,把机械振动转成一脚干净的0/1数字信号,Arduino读一个数字脚就能判断有没有被撞击或晃动。做报警、防拆、快递包裹震感检测很合适。这篇讲接线、灵敏度调节和代码。
SW-420模块引脚和接线
模块引出三个脚:VCC接电源(3.3V到5V都行)、GND接地、DO是数字输出。它内部常态时输出低电平,一旦检测到振动或冲击就输出高电平。板上还带两个小LED,一个是电源指示灯,一个在DO变高时跟着亮,方便你不用开串口就能肉眼确认触发。还有一颗蓝白色电位器,用来调灵敏度。

图上把这个模块的引脚作用标得很清楚——VCC/GND/DO三根线,配上板上那颗调灵敏度的电位器。接Arduino就是DO接一个数字脚(比如D5),VCC接5V、GND共地,三根线就全了。因为DO信号是LM393主动驱动的,不需要外接上拉电阻。

这块接线示意把模块和蜂鸣器配在一起:一检测到振动,Arduino就让蜂鸣器响,就拼出一个简易的震动报警器。把“响”换成发通知、亮灯、上锁,就能用在防盗、设备防拆、货品防摔提醒上。
读震动信号的代码和调灵敏度
代码核心是数字IO:先把DO接的引脚pinMode设为输入,循环里digitalRead读它,读到高就是检测到振动。用一段去抖逻辑(比如检测到高后等一下再复位)可以避免边缘状态误报。灵敏度用板上的电位器调,转到合适位置,太灵敏是轻微碰一下就触发,太迟钝是用力拍才触发,按你的场景慢慢微调。
排障记得三点:先看电源LED亮没亮、再确认VCC/GND/DO三根接对、最后用螺丝刀调灵敏度。SW-420不测振动的强度数值,只给“有没有超过阈值”这个数字结论,做报警和事件检测它足够用。







它只给有没有超过阈值这个0/1,不测强度数值,适合事件类判断
DO是三根线主动驱动的数字信号,不用外加偏置电阻
配个蜂鸣器一响就是简易振动报警,做防拆和防摔检测都好用
模块上那个电位器转得太迟钝或太灵敏,按场景微调就好