当前位置:首页>产品中心

STM32电子DIYHC-SR501人体感应设计

时间:2024-05-09 18:49:30来源:佛山顺德区昊胜传感仪器有限公司
一,体感热释电红外传感器是应设一种能检测人或动物发射的红外线而输出电信号的传感器,应用广泛

热释电传感器基本知识:

热释电效应同压电效应类似,体感是应设指由于温度的变化而引起晶体表面荷电的现象。热释电传感器是体感对温度敏感的传感器。它由陶瓷氧化物或压电晶体元件组成,应设在元件两个表面做成电极,体感在传感器监测范围内温度有ΔT的应设变化时,热释电效应会在两个电极上会产生电荷ΔQ,体感即在两电极之间产生一微弱的应设电压ΔV。由于它的体感输出阻抗极高,在传感器中有一个场效应管进行阻抗变换。应设热释电效应所产生的体感电荷ΔQ会被空气中的离子所结合而消失,即当环境温度稳定不变时,应设ΔT=则传感器无输出。体感当人体进入检测区,因人体温度与环境温度有差别,产生ΔT,则有ΔT输出;若人体进入检测区后不动,则温度没有变化,传感器也没有输出了。所以这种传感器检测人体或者动物的活动传感。由实验证明,传感器不加光学透镜(也称菲涅尔透镜),其检测距离小于2m,而加上光学透镜后,其检测距离可大于7m。

使用中应注意以下几点:

一、直流工作电压必须符合我们要求的数值,过高和过低都会影响模块性能,而且要求电源必须经过良好的稳压滤波,例如电脑USB电源、手机充电器电源、比较旧的9V的层叠电池都无法满足模块工作要求,建议客户用变压器的电源并经过三端稳压芯片稳压后再通过220UF和0.1UF的电容滤波后供电。二、调试时人体尽量远离感应区域,有时虽然人体不在模块的正前方,但是人体离模块太近时模块也能感应到造成一直有输出,还有调试时人体不要触摸电路部分也会影响模块工作,比较科学的办法是将输出端接一个LED或者是万用表,把模块用报纸盖住。三、模块不接负载时能正常工作,接上负载后工作紊乱,一种原因是因为电源容量很小负载比较耗电,负载工作时引起的电压波动导致模块误动作,另一种原因是负载得电工作时会产生干扰,例如继电器或者电磁铁等感性负载会产生反向电动势,315M发射板工作时会有电磁辐射等都会影响模块。解决办法如下:A、电源部分加电感滤波。B、采用负载和模块使用不同的电压的方法,例如:负载使用24V工作电压,模块使用12V工作电压,其间用三端稳压器隔离。C:使用更大容量的电源。四、人体感应模块只能工作在室内并且工作环境应该避免阳光、强烈灯光直接照射,如果工作环境有强大的射频干扰,可以采用屏蔽措施。若遇有强烈气流干扰,关闭门窗或阻止对流。感应区尽量避免正对着发热电器和物体以及容易被风吹动的杂物和衣物。五、人体感应模块建议安装在密封的盒里,否则可能一直会有输出信号。六、如果要求人体感应模块的探测角度小于90度时,可以用不透明胶纸遮挡镜片或裁剪缩小镜片来实现。七、人体感应模块采用双元探头,人体的手脚和头部运动方向与感应灵敏度有着密切的联系,而且红外模块的特性决定了无法精确控制感应距离。八、模块中的探头(PIR)可以装焊在电路板的另一面。也可将探头用双芯屏蔽线延长,长度应在20厘米以内为好。

(上述介绍摘自百度)

二,功能描述:
光敏控制:可设置光敏控制,白天或光线强时不感应。
温度补偿:在夏天当环境温度升高至30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。
两种触发方式:(可跳线选择)
a、不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平;
b、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。
三,模块参数:

工作电压范围:直流电压4.8~20V

静态电流:50uA

电平输出:高3.3V/低0V

触发方式:L不可重复触发/H重复触发(默认重复触发)

延时时间:0.200S(可调)可制作范围零点几秒-几十分钟

封锁时间:2.5S(默认)可制作范围零点几秒-几十秒

电路板外形尺寸:32mm*24mm

感应角度:100度锥角

工作温度:-+70度

四,原理图如下:
五,实物图如下:
六,工作原理
人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。
人体都有恒定的体温,一般在37度左右,发出特定波长10UM左右的红外线,被动式红外探头就是靠探测人体发射的10UM左右的红外线而进行工作的。人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。
红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。
(此模块中含有一个BISS001芯片,此芯片参考手册见链接。)
七,模块引脚连接见下图:
八,程序代码:
因感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出
3次,一分钟后进入待机状态。
所以程序思路如下:
初始化(除了HC-SR501模块程序)所有需要初始化的程序。
延时10秒
蜂鸣器响1秒
初始化HC-SR501模块程序
开启中断(因人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。所以设置上升沿中断或双边沿中断)
//文件//作者:逗比小憨憨include""include""u8flag=0;voidHcsr501_Init(void){GPIO_InitTypeDefGPIO_InitStruct;EXTI_InitTypeDefEXTI_InitStruct;NVIC_InitTypeDefNVIC_InitStruct;RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//开启AFIO时钟GPIO__Mode=GPIO_Mode_IPD;GPIO__Pin=Hcsr501_Pin;GPIO__Speed=GPIO_Speed_50MHz;GPIO_Init(Hcsr501Port,GPIO_InitStruct);EXTI__Line=EXTI_Line5;EXTI__LineCmd=ENABLE;EXTI__Mode=EXTI_Mode_Interrupt;EXTI__Trigger=EXTI_Trigger_Rising;EXTI_Init(EXTI_InitStruct);GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource5);NVIC__IRQChannel=EXTI9_5_IRQn;NVIC__IRQChannelCmd=ENABLE;NVIC__IRQChannelPreemptionPriority=2;NVIC__IRQChannelSubPriority=1;NVIC_Init(NVIC_InitStruct);}voidEXTI9_5_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line5)!=RESET){flag=1;//此标志说明有人进入感应范围,具体程序根据个人需求来写。printf("有人闯入!!!rn");//用于测试}EXTI_ClearITPingBit(EXTI_Line5);}define__hcsr501_Hinclude""defineHcsr501_PinGPIO_Pin_4defineEXIT_DisableEXTI-IMR=~(EXTI_Line1);//关闭了指定的外部中断//if
九,演示图