HC-SR501人体红外感应模块怎么用?Arduino接线延时和误触发避坑

工位上的小周硬件DIY 2026-10-14 19:54:38 9阅读 举报

给智能灯光、防盗报警、机器人做人体感应,HC-SR501大概是上场率最高的一颗红外人体感应模块。它靠人体发出的红外热释电变化来检测附近有没有人走动,不需要碰、失败率低,十几块就能买到。第一次用容易被它那两个电位器搞懵,这篇把接线和参数设置讲明白。

三根脚,输出就是高低电平

HC-SR501一般三根脚:VCC接5V、GND接地、OUT输出信号脚。OUT在检测到人体移动时输出高电平,没检测到就输出低电平,是一个非常干净的开关量。接到Arduino数字脚上直接digitalRead就能判断有没有人。

注意它是要供电5V的,虽然有些板子3.3V也能勉强跑,但为了灵敏度稳定,建议给5V。输出的高电平是模块自己的电平,接Arduino的输入脚读就行。

两个旋钮和跳线,决定行为

模块上有两个可调电位器:一个调触发后输出的保持延时(延时调节),一个调感应到的距离/灵敏度(距离调节)。还有一个模式跳线,H(可重复触发)模式是有人一直在就持续输出高电平,L(不可重复)模式是触发一次输出保持设定延时后不管是否有人都回低。

做人来灯亮这种,通常用H可重复模式,人在灯亮人走灯灭最顺。做一次性触发计数,用L模式更合适。两个电位器出厂值往往偏高偏敏感,装到实际环境建议先用小螺丝刀微调,避免误触发。

三个高频坑,提前绕开

第一是别对着热源和穿堂风。HC-SR501对红外变化敏感,暖气、空调风口、阳光直射或者小动物(猫狗)都能触发它。装的时候尽量避开风口和直射光,灵敏度调低一点,误触发会少很多。

第二是静态的人检测不到。它靠的是红外变化,你站在那完全不动,过一会儿模块会认为没人而回低。所以它更适合判断“有没有人在动”,而不是“有没有人坐着不动”,做办公位的在座检测要用别的方案。

第三是上电自稳时间。刚上电或刚调完电位器,模块需要几秒到几十秒的自适应稳定期,这期间输出可能误跳。写代码时可以在上电后延时几秒再开始判断,别一上电就把它当真实信号。

把供电、模式跳线和这两个电位器捋顺,HC-SR501就是一个很省心的人体感应开关,做灯光、报警和机器人互动都顺手。

版权声明:
作者:工位上的小周
链接:https://www.aiddithome.com/p/119334d37f54bf.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论

站那完全不动它确实会判没人,它的本质就是检测动态红外变化

探头看一眼
2楼 · 2天前

上电自稳那几秒是真坑,代码里延时几秒再判断就不会误报了

板砖搬不动
3楼 · 2天前

对着空调风口装一个误触发到怀疑人生,避开风口再调低灵敏度就好了

阿强焊点总飞
4楼 · 2天前

H模式人和灯两用最合适,人在亮人走灭,设定延时别太长