
传感器介绍:SR602传感器,这是一款高灵敏度、超小体积的热释电红外(PIR)感应模块。它不仅性能稳定,而且极易集成到各种自动控制设备中,当有人进入其感应范围时,模块会输出高电平;当人离开感应范围时,模块会延时自动关闭高电平,输出低电平。其最大的特点是体积微小(仅为普通模块的一半左右)且无需外围电路即可直接驱动继电器。也可以使用单片机开发板来读取传感器OUT引脚的高低电平的变化。
工作原理:(PIR)热释电是基于红外线技术。在自然界物理基础上任何高于绝对零度($-273^{\circ}C$)的物体,包括动物或人都会产生红外辐射。由于人体的体温恒定,会发出波长约为 $9-10\mu m$ 的特定红外线。当人体移动时,红外辐射落到传感器上的位置发生变化,导致感应电荷平衡被打破。在传感器探头上加装了小白帽叫:菲涅尔透镜(Fresnel Lens),它的作用是将散乱的人体红外线聚焦到感应元上。透镜的后方有一个对温度变化极其敏感的红外接收元。传感器内部的专用集成电路(BISS0001 的类似芯片或定制芯片)会捕捉到这个极其微弱的电荷变化,经过多级放大和滤波处理。当信号强度超过预设阈值时,控制逻辑将输出脚(OUT)拉升至高电平。
技术参数:
工作电压:DC 3.3V - 15V
静态电流:< 20uA
输出电平:高电平 3.3V / 低电平 0V
延时时间:默认约 2.5 秒(可调 2.5s - 1h)
封锁时间 :2 秒
感应距离:3 - 5 米(最佳范围内)
感应角度:< 100 度锥角
工作温度: -20°C 至 +80°C
PCB 尺寸:15mm x 15mm

预热时间:传感器在通电后会有大约十几秒初始化时间,期间输出可能会跳动,这属于正常现象,需要静置一会儿才能正常输出
避免干扰:因为是红外线类型,所以安装时应避开暖气、空调、电冰箱等温度变化敏感的地方,同时避免阳光直射
安装高度:为了达到最佳感应效果,建议安装高度在 2~3米左右可最佳
感应穿透:红外线是无法穿透玻璃、厚衣服或墙壁,所以该传感器只能感应视线范围内的移动人体
当HR602模块检测到人体时,信号引脚输出高电平,输出高电平的持续时间可通过调节电阻进行调整;模块出厂时默认调节电阻为0欧姆,即持续时间为2.5秒左右。持续时间与电阻的对应关系如下:

1.模块为单一的可重复触发模式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时。
2.模块封锁时间为2秒,不可调节:封锁时间即模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号,时间结束后进行下一次感应状态。
3.模块输出时序:模块上电后,信号引脚会输出2秒钟的高电平,然后变为低电平,进入待机状态。若更改延时时间,模块上电后输出高电平的时间会相应增加,可理解为上电后进入正常工作状态的启动时间会增加。

| SR602传感器模块资料 | 电路设计原理图 |
| 以树莓派Pico开发板为例,提醒: 请按下图的引脚标识接线,务必不能接错。如果接错线通电后会导致设备烧毁! |

可在Pico开发板上直接运行下面的代码,逻辑:初始化主板GPIO引脚(导入模块、配置引脚)然后进入无限循环:1.读取 GP0 引脚当前电平状态 2.根据电平高低判断并输出对应信息
如果你还没有搭建好树莓派Python编程环境可参考这个帖子→:如何搭建Python编程环境
# www.ydxhuo.com
# 检测GP0引脚电平,高电平显示"有人",低电平显示"无人"
from machine import Pin
import time
sensor_pin = Pin(0, Pin.IN, Pin.PULL_DOWN)
while True:
# 读取引脚当前电平状态(1为高电平,0为低电平)
current_state = sensor_pin.value()
if current_state == 1:
print("有人")
else:
print("无人")
time.sleep(0.1)
结果:等待传感器初始化完成后,当人物出现在传感器探头前会输出高电平显示有人,无人时模块输出低电平!
# 树莓派Pico GP0引脚状态监测程序
# 功能:检测GP0引脚电平,控制板载WS2812灯并显示有人/无人
from machine import Pin
import time
from neopixel import NeoPixel
# 配置GP0引脚为输入模式,启用内部下拉电阻
sensor_pin = Pin(0, Pin.IN, Pin.PULL_DOWN)
# 配置板载WS2812 LED(通常连接在GP25引脚)
# 这里假设LED数量为1,实际根据硬件情况调整
led_pin = Pin(25, Pin.OUT)
np = NeoPixel(led_pin, 1) # 创建NeoPixel对象,1个LED
# 定义颜色
WHITE = (255, 255, 255) # 白色
BLACK = (0, 0, 0) # 熄灭
# 主循环:持续监测引脚状态
while True:
# 读取引脚当前电平状态(1为高电平,0为低电平)
current_state = sensor_pin.value()
# 根据电平状态控制LED并输出对应信息
if current_state == 1:
print("有人")
np[0] = WHITE # 设置第一个LED为白色
else:
print("无人")
np[0] = BLACK # 熄灭LED
np.write() # 将颜色数据写入LED
time.sleep(0.1) # 延时0.1秒,控制检测频率
此代码逻辑:1.读取 GP0 引脚当前电平状态 ,根据电平高低判断,有高电平时显示有人并打开GP23引脚的WS2812灯。 没有高电平时显示 无人并关闭灯!
程序采用循环检测模式,通过内部下拉电阻保证输入信号稳定,每次检测间隔 0.1 秒以平衡响应速度和系统负载。整体结构清晰,包含硬件初始化、状态检测、逻辑判断和执行输出四个主要部分。该代码主要实现两个核心功能是:
1.通过 GP0 引脚检测外部输入的高低电平,高电平时输出 "有人",低电平时输出 "无人"
2.根据检测到的电平状态控制板载 WS2812 LED:高电平时点亮白色,低电平时熄灭
核心知识点:
1.Python 硬件控制基础
1.machine.Pin类:用于配置和操作 GPIO 引脚,支持输入 / 输出模式切换
2.引脚模式:Pin.IN(输入模式) 和Pin.OUT(输出模式) 的区别与应用场景,内部电阻:Pin.PULL_DOWN下拉电阻的作用(稳定悬空引脚电平,避免误触发)
3.WS2812 LED 控制neopixel.NeoPixel类:用于驱动 WS2812 等可编程 LED-RGB 颜色表示:通过三元组(R, G, B)定义颜色,值范围 0-255数据写入:np.write()方法将颜色数据发送到 LED 的原理
程序结构设计:
初始化部分:硬件资源配置应放在循环外,避免重复初始化
无限循环:while True实现持续监测的典型应用
条件判断:if-else结构实现不同状态的分支处理
实时系统考量
延时控制:time.sleep(0.1)的作用(平衡检测频率和 CPU 占用)
状态同步:确保传感器检测与 LED 控制的状态一致性
硬件接口知识
GPIO 引脚编号:树莓派 Pico 的 GP0 对应物理引脚 1
板载 LED 通常连接在 GP25 引脚(不同型号可能有差异)
数字输入信号:高低电平的电气特性(通常高电平为 3.3V,低电平为 0V)
这些知识点涵盖了从硬件配置到软件逻辑的完整流程,是嵌入式系统开发的基础技能,可应用于各类传感器检测与外设控制场景。
联系人:张工
电话:0755-32914578
微信:扫下方二维码添加技术工程师微信,请备注来意
创客技术交流QQ群:2095618,175680,9075883(加群请备注:跃动芯火)