人体感应 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 人体感应模块说明书

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值