人体感应 HC-SR501传感器

HC--SR501 人体红外感应模块 是基于红外线技术的自动控制产品。 灵敏度高、 可靠性强、
超低功耗。 广泛应用于各类自动感应电器设备 , 尤其是干电池供电的自动控制产品 .

一、工作原理

 功能特点

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


2、光敏控制 (可选):模块预留有位置,可设置光敏控制,白天或光线强时不感应。光敏控制为可选功能 ,出厂时未安装光敏电阻。如果需要,请另行购买光敏电阻自己安装。


3、温度补偿 (可选择,出厂时未设 ):在夏天当环境温度升高至 30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。


4、两种触发方式:(可跳线选择)


        a、不可重复触发方式 :即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平;----   用跳冒短接 L
        b、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点 )。
用跳冒短接 H

注: 调节距离电位器顺时针旋转,感应距离增大(约  7 米),反之,感应距离减小(约  3 米),

        调节延时电位器顺时针旋转,感应延时加长(约300S),反之,感应延时减短 (约  5S)


5、具有感应封锁时间 (默认设置 :2.5S封锁时间 ):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。 (此时间可设置在零点几秒 ---------  几十秒钟 )。


6、工作电压范围宽:默认工作电压 DC3.6V~30V 。
7、微功耗 :静态电流 <50 微安,特别适合干电池供电的自动控制产品。
8、输出高电平信号:可方便与各类电路实现对接
 

感应范围

人体感应外部使用情况

 使用安装情况说明

 1. 感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出 0-3 次,一分钟后进入待机状态。

2.应尽量避免灯光等干扰源近距离直射模块表面的透镜,以免引进干扰信号产生误动作;使用环境尽量避免流动的风,风也会对感应器造成干扰。

3.感应模块采用双元探头(PIR),探头的窗口为长方形,双元( A 元 B 元)位于较长方向的两端,当人体从左到右或从右到左走过时 ,红外光谱到达双元的时间、距离有差值,差值越大,感应越灵敏,当人体从正面走向探头或从上到下或从下到上方向走过时,双元检测不到红外光谱距离的变化,无差值,因此感应不灵敏或不工作;所以安装感应器时应使探头双元的方向与人体活动最多的方向尽量相平行,保证人体经过时先后被探头双元所感应。为了增加感应角度范围,本模块采用圆形透镜,也使得探头四面都感应,但左右两侧仍然比上下两个方向感应范围大、灵敏度强,安装时仍须尽量按以上要求。

4、与此同时可以了解一下,菲涅尔透镜 和  PIR 原理

相关代码

bsp_infrared.h

#define SR501_INT_GPIO_PORT	                GPIOA
#define SR501_INT_GPIO_PIN                  GPIO_Pin_4
#define SR501_INT_GPIO_CLK                  (RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO)
#define SR501_INT_GPIO_PORTSOURCE           GPIO_PortSourceGPIOA
#define SR501_INT_GPIO_PINSOURCE            GPIO_PinSource4
#define SR501_INT_EXTI_LINE                 EXTI_Line4
#define SR501_INT_EXTI_IRQ		            EXTI4_IRQn		

#define SR501_IRQHandler                    EXTI4_IRQHandler


void SR501_EXTI_Config(void);

bsp_infrared.c


/*
 * 函数名:NVIC_Configration
 * 描述  :中断优先级
 * 输入  :无
 * 输出  :无
 */
static void NVIC_Configration(void)
{  
    NVIC_InitTypeDef NVIC_InitStruct;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);         
    NVIC_InitStruct.NVIC_IRQChannel = SR501_INT_EXTI_IRQ;       
    NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStruct.NVIC_IRQChannelSubPriority = 2;
    NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStruct);  
}
/*
 * 函数名:SR501_EXTI_Config
 * 描述  :中断引脚模式配置
 * 输入  :无
 * 输出  :无
 */
void SR501_EXTI_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    EXTI_InitTypeDef EXTI_InitStruct;
  
    RCC_APB2PeriphClockCmd(SR501_INT_GPIO_CLK,ENABLE);  //时钟使能

    NVIC_Configration();

    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPD;      //下拉输入
    GPIO_InitStruct.GPIO_Pin = SR501_INT_GPIO_PIN;
    GPIO_Init(SR501_INT_GPIO_PORT, &GPIO_InitStruct);
          //中断控制器

    GPIO_EXTILineConfig(SR501_INT_GPIO_PORTSOURCE, SR501_INT_GPIO_PINSOURCE);       //引脚源配置

    EXTI_InitStruct.EXTI_Line = SR501_INT_EXTI_LINE;
    EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;
    EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStruct.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStruct);    //中断初始化

}

参考文献:
HC-SR501 人体感应模块说明书

HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口LHI778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。 电气参数 产品型号HC--SR501人体感应模块 工作电压范围直流电压4.5-20V 静态电流<50uA 电平输出高3.3 V /低0V 触发方式L不可重复触发/H重复触发(默认重复触发) 延时时间5-200S(可调)可制作范围零点几秒-几十分钟 封锁时间2.5S(默认)可制作范围零点几秒-几十秒 电路板外形尺寸32mm*24mm 感应角度<100度锥角 工作温度-15-+70度 感应透镜尺寸直径:23mm(默认) 功能特点: 1、全自动感应:人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。 2、光敏控制(可选择,出厂时未设)可设置光敏控制,白天或光线强时不感应。 3、温度补偿(可选择,出厂时未设):在夏天当环境温度升高至30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。 4、两种触发方式:(可跳线选择) a、不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平; b、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。 5、具有感应封锁时间(默认设置:2.5S封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒—几十秒钟)。 6、工作电压范围宽:默认工作电压DC4.5V-20V。 7、微功耗:静态电流<50微安,特别适合干电池供电的自动控制产品。 8、输出高电平信号:可方便与各类电路实现对接。 实物购买链接:https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-981744861.13.F4vK7o&id=10566272393
### HC-SR501红外人体感应传感器使用说明 #### 一、概述 HC-SR501是一款基于热释电效应的人体红外传感器模块,能够检测到环境中温度变化并触发信号输出。此设备通常用于智能家居、安全报警等领域,具备高灵敏度特性以及良好的抗干扰能力[^3]。 #### 二、工作原理 当有人进入探测区域时,由于人体发出的热量与背景不同,在经过菲涅尔透镜聚焦后形成温差变化,进而引起内部热敏电阻阻值改变而产生电压波动;通过内置电路处理放大这些微弱电信号之后就可以得到有效的开关量输出作为警报或其他动作指令[^1]。 #### 三、主要参数和技术指标 - **供电电源**:DC 4.5V~20V - **静态电流**:<65uA - **输出方式**:TTL电平信号(低电平时表示有移动物体) - **有效侦测角度**:约110°×70°锥形空间范围 - **最远可探测距离**:可达7米左右 - **延时时间调整**:由板载电位器设定,默认出厂设置为几秒至几分钟不等 - **重复触发间隔**:可通过跳线帽配置成常开或自锁模式 - **环境适应性**:支持室内室外安装,防水等级IPX4以上 #### 四、硬件连接图解 为了方便开发者理解如何将HC-SR501接入控制系统中,下面给出了一张简单的接线示意图: ![hc-sr501 wiring](https://www.electronicwings.com/public/images/product/ir-motion-detector/hc_sr501_pinout.png) 其中,“VCC”端子应接到正极直流输入,“GND”接地,“OUT”则负责传输状态反馈给MCU或者其他逻辑单元进行后续操作判断[^2]。 #### 五、编程实例 这里提供一段Arduino平台下的基础测试程序供参考: ```cpp const int sensorPin = 2; // 定义数字引脚2为接收来自HC-SR501的数据口 void setup() { pinMode(sensorPin, INPUT); // 设置sensorPin为输入模式 Serial.begin(9600); // 初始化串行通信波特率为9600bps } void loop(){ if(digitalRead(sensorPin)==HIGH){ // 如果读取到高电平,则认为检测到了运动目标 Serial.println("Motion Detected!");// 向监视器发送消息通知发现活动迹象 delay(1000); // 延迟一秒防止误判连续触发事件的发生 } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值