跳到主要内容

HC-SR505人体红外感应传感器

一、本例程实现功能

通过HC-SR505人体红外感应传感器模块感应人体的出现,当感应到人体时,Core电路板上的LED1灯亮,当人体离开时LED1灯灭。

二、HC-SR505传感器介绍

传感器特点:

  • 全自动感应:人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。

  • 超小体积。

  • 可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。

  • 工作电压范围宽:默认工作电压DC4.5V-20V。

  • 微功耗:静态电流:< 50uA

  • 输出高电平信号:可方便与各类电路实现对接。

传感器应用范围

人体感应灯具 ,人体感应玩具,安防产品,工业自动化控制,自动感应电器设备,电池供电自动控制等

三、接线图

layout

四、材料清单

名称推荐购买链接(或者您可以自己制作)模块/芯片硬件资料下载
HC-SR505人体红外传感器模块HC-SR505购买链接下载地址
声明:这里推荐的购买链接仅供参考,您完全可以去其他商家或渠道购买,只要功能相似即可,如果需要更低的成本建议自己开发硬件模块或定制。

product1

product2

五、完整代码

HC-RS501传感器的使用非常简单,我们仅用Core提供的Gpio库函数来读取传感器OUT引脚输出的电平即可判断红外传感器是否感应到人体。

--配置D8为普通输出,控制Core电路板上的LED1
LIB_GpioOutputConfig("D8","STANDARD")
--设置D5口为普通输入,连接人体红外传感器的OUT引脚,也可以选D0-D7中的任意一个引脚
LIB_GpioInputConfig("D5","NOPULL")
--开始大循环
--注意模块上电后过一分钟才能正常感应人体
while(GC(1) == true)
do
gpio_value = LIB_GpioRead("D5")
if gpio_value == 1 then --感应到人体
LIB_GpioWrite("D8",0)--LED1灯亮
else
LIB_GpioWrite("D8",1)--LED1灯灭
end
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

六、代码运行结果

由下图可以看到,当手靠近传感器时,Core电路板上的LED1灯就会亮。

result