目录
概述
HC - SR501 人体红外热释电传感器(简称 HC - SR501 传感器)是一种基于热释电效应与红外检测原理的被动式人体感应传感器。它能通过检测人体或其他发热物体释放的红外线能量变化,实现对移动物体的感应,核心特性是仅对动态热辐射源敏感,静态热辐射源无响应。该传感器集成了热释电探测元件、菲涅尔透镜、信号放大电路、滤波电路及延时控制电路,具有成本低、功耗低(静态电流仅几十 μA)、感应距离可调、安装便捷等优势,广泛应用于人体感应灯、智能安防报警系统(如红外入侵检测)、自动洗手液机、智能马桶、考勤机等场景。与主动式人体检测传感器(如超声波传感器、微波雷达传感器)相比,HC - SR501 无需主动发射探测信号,仅被动接收红外辐射,在隐蔽性、低功耗方面更具优势,是民用消费电子领域人体感应方案的主流选择。
一、HC-SR501的工作原理

HC-SR501工作的核心是热释电效应。
其内部包含一个热释电红外传感器(通常采用双元件互补结构),该传感器能够感知环境中的红外辐射变化。当人体(一个发热源)进入传感器的探测范围并发生移动时,人体发出的红外辐射会通过传感器表面的菲涅尔透镜进行聚焦。菲涅尔透镜不仅能增大探测距离,还能产生多个交替的敏感区与非敏感区,从而更易于检测到移动的热源,而对静止的热源不敏感。
聚焦后的红外辐射照射到热释电元件的感应面上,引起元件温度的变化,进而导致其表面电荷密度发生改变,产生微弱的电信号。这个微弱的信号经过传感器内部的放大电路和比较电路处理后,若信号强度超过设定的阈值,输出引脚(OUT)便会从低电平跳变为高电平,向微控制器(如Arduino, STM32)发出检测到人体的信号。
需要注意的是,HC-SR501检测的是红外辐射的变化,因此对于静止不动的人体,它可能无法持续检测。
二、主要性能参数与特性
为了更直观地了解HC-SR501的性能,请看下表:
| 参数类别 | 参数项 | 详细说明 |
|---|---|---|
| 电气特性 | 工作电压 | 直流 4.5V - 20V(宽电压设计,兼容性强) |
| 静态电流 | < 50μA(超低功耗,特别适合电池供电设备) | |
| 输出信号 | TTL 电平:高电平 3.3V,低电平 0V | |
| 感应性能 | 最大感应距离 | 约 7米(可调) |
| 感应角度 | < 100度锥角 或 约120°(提供较广的探测范围) | |
| 触发方式 | 可重复触发(H) / 不可重复触发(L)(通过跳线选择) | |
| 时间特性 | 延时时间 | 0.5秒 - 200秒(可调)或 约8秒至200秒(输出高电平的持续时间) |
| 封锁时间 | 默认约 2.5秒(输出延时结束后,传感器在此期间不接受任何触发信号) | |
| 环境适应性 | 工作温度 | -15℃ 至 +70℃ 或 -20℃ 至 +80℃(适应较宽的温度范围) |
两种触发模式:
不可重复触发(L):感应输出高电平后,延时结束即输出低电平,期间无视新的触发信号。
可重复触发(H):在延时时间内,若再次检测到人体移动,会重新开始计时延时,直至最后一次移动后的延时结束。
可调节性:模块背面通常配备两个电位器,分别用于调节感应距离和延时时间。
三、与其他传感器的对比
在人体检测方案中,HC-SR501常与其他类型的传感器进行比较。
| 传感器类型 | 工作原理 | 特点 | 适用场景 | 备注 |
|---|---|---|---|---|
| HC-SR501 (PIR) | 被动接收人体发出的红外辐射变化 | 功耗低、成本低、对运动人体敏感、易受热源、射频干扰 | 安防报警、自动照明、智能家居(检测人体存在) | |
| 对射式红外传感器 | 发射端和接收端之间红外线是否被遮挡 | 可靠性高、抗干扰强、需对射安装、检测有无物体(不一定是人)而非运动 | 工业自动化、门窗开关状态检测、物品计数 | 检测对象不限于人体 |
| 超声波传感器 (HC-SR04) | 发射超声波并接收回波,通过时间差测距 | 可测距、不受热源和光线影响、但成本较高、易受温度和气流影响、检测任何物体而不仅限于人 | 机器人避障、距离测量、液位检测 | 主动式传感器 |
| 微波雷达传感器 | 发射电磁波并分析移动物体反射波的变化 | 可穿透非金属材质、检测微动(如呼吸)、精度高、但成本高、可能受其他无线电干扰 | 存在性检测(人在场)、高级安防、智能家电 | 新兴技术,发展迅速 |
总结对比:HC-SR501在成本、功耗和人体运动检测方面优势明显,非常适合需要检测人体移动且对成本敏感的应用。但其易受干扰和无法检测静止人体的特点,也需要在选型时慎重考虑。
四、引脚功能介绍
HC-SR501模块通常只有三个引脚,非常简单易懂。

| 引脚序号 | 引脚名称 | 功能描述 |
|---|---|---|
| 1 | VCC | 电源正极,接直流电源(4.5V - 20V,常用5V) |
| 2 | OUT | 信号输出端,检测到人体时输出高电平(3.3V),否则为低电平(0V)。直接与微控制器(如Arduino, STM32)的I/O口连接。 |
| 3 | GND | 电源地,接电源负极。 |
五、通信协议与数据读取
HC-SR501的输出协议非常简单,它没有复杂的数字通信协议(如I2C、SPI、UART),只需要读取其数字电平信号即可。
-
输出信号类型:数字脉冲(TTL电平)。
-
高电平 (3.3V):表示检测到人体移动。
-
低电平 (0V):表示未检测到人体移动。
-
-
数据读取方式:
-
轮询(Polling):微控制器不断读取OUT引脚的电平状态。这种方式简单,但可能会占用较多CPU资源,且有可能在微控制器处理其他任务时错过短暂的触发信号。
-
外部中断(External Interrupt):将OUT引脚连接到微控制器的外部中断引脚,并设置为上升沿(或电平变化)触发。当HC-SR501输出高电平时,会立即触发中断,微控制器可以迅速响应。这种方式实时性更高,是推荐的使用方法。
-
六、示例代码(STM32)
这段简单的代码演示了如何通过轮询方式读取HC-SR501的状态。
/* USER CODE BEGIN Includes */
#include "stm32f1xx_hal.h"
/* USER CODE END Includes */
/* USER CODE BEGIN Private defines */
// HC - SR501引脚定义(PA0为OUT引脚)
#define HC_SR501_PIN GPIO_PIN_0
#define HC_SR501_PORT GPIOA
// LED引脚定义(PB12控制LED)
#define LED_PIN GPIO_PIN_12
#define LED_PORT GPIOB
// 状态宏定义
#define HC_SR501_DETECTED 1 // 检测到人体
#define HC_SR501_NOT_DETECT 0 // 未检测到人体
/* USER CODE END Private defines */
/* USER CODE BEGIN 2 */
HAL_Init(); // 初始化HAL库
SystemClock_Config(); // 初始化系统时钟(CubeMX自动生成)
MX_GPIO_Init(); // 初始化GPIO(CubeMX自动生成)
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); // 初始熄灭LED
uint8_t hc_sr501_state = HC_SR501_NOT_DETECT; // 传感器初始状态
/* USER CODE END 2 */
/* USER CODE BEGIN WHILE */
while (1)
{
/* 1. 读取HC - SR501的OUT引脚电平 */
if (HAL_GPIO_ReadPin(HC_SR501_PORT, HC_SR501_PIN) == GPIO_PIN_SET)
{
// 2. 检测到人体(高电平),更新状态并点亮LED
if (hc_sr501_state != HC_SR501_DETECTED)
{
hc_sr501_state = HC_SR501_DETECTED;
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET); // LED点亮
printf("HC - SR501: Detected human body!\r\n"); // 串口打印(需配置串口)
}
}
else
{
// 3. 未检测到人体(低电平),更新状态并熄灭LED
if (hc_sr501_state != HC_SR501_NOT_DETECT)
{
hc_sr501_state = HC_SR501_NOT_DETECT;
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); // LED熄灭
printf("HC - SR501: No human body detected!\r\n"); // 串口打印
}
}
HAL_Delay(200); // 延时200ms,降低CPU占用(可根据需求调整,最小50ms避免频繁检测)
/* USER CODE END WHILE */
}
七、应用注意事项
安装要点:避免将传感器正对阳光、暖气、空调出风口等热源或光线直射的地方,以防误触发。菲涅尔透镜应对准需要检测的区域。
稳定性:HC-SR501模块在上电后需要几十秒的初始化稳定时间(具体见产品手册),此期间可能会输出不规则信号,应避免在此期间进行判断。
干扰规避:虽具有一定的抗干扰能力,但强电磁干扰、射频辐射仍可能影响其工作,在复杂电磁环境中需考虑屏蔽措施。
局限性认识:明确其对静止人体不敏感的特性,不要在需要存在性检测(判断是否有人在场)的场合误用它。
八、相关应用设计
👉👉👉👉其他作品题目速选一览表


356

被折叠的 条评论
为什么被折叠?



