人体感应模块stm32驱动

热释电效应

在某些绝缘物质中,由于温度的变化引起极化状态改变的现象称为热释电效应。能实现热释电效应的物质被称为热电体。热电体物质有硫酸三甘肽(TGS)、铁电钛酸钡、电气石和蔗糖等。这一现象早在2300年前就被人们发现了,但对它的研究则始于18世纪。现在它成为固体物理中最活跃的研究领域之一。因为铁电体的热释电系数比一般热电体大得多,故成为应用广泛的热电体材料,除TGS及其衍生物外,铁电陶瓷(如PZT、PLZT等)成为易于通过组份改变控制性能、适于批量生产、价廉的实用型热电材料。

热释电效应在近10年被用于热释电红外探测器中,广泛地用于辐射和非接触式温度测量、红外光谱测量、激光参数测量、工业自动控制、空间技术、红外摄像中。我国利用ATGSAS晶体制成的红外摄像管已开始出口国外。其温度响应率达到4~5μA/℃,温度分辨率小于0.2℃,信号灵敏度高,图像清晰度和抗强光干扰能力也明显地提高,且滞后较小。此外,由于生物体中也存在热释电现象,故可预期热释电效应将在生物,乃至生命过程中有重要的应用。在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
热释电红外传感器在结构上引入场效应管,其目的在于完成阻抗变换。由于热电元输出的是电荷信号,并不能直接使用,因而需要用电阻将其转换为电压形式。故引入的N沟道结型场效应管应接成共漏形式来完成阻抗变换。热释电红外传感器由传感探测元、干涉滤光片和场效应管匹配器三部分组成。设计时应将高热电材料制成一定厚度的薄片,并在它的两面镀上金属电极,然后加电对其进行极化,这样便制成了热释电探测元。在这里插入图片描述
在这里插入图片描述
菲涅尔透镜利用透镜的特殊光学原理,在探测器前方产生一个交替变化的“盲区”和“高灵敏区”,以提高它的探测接收灵敏度。当有人从透镜前走过时,人体发出的红外线就不断地交替从“盲区”进入“高灵敏区”,这样就使接收到的红外信号以忽强忽弱的脉冲形式输入,从而强化其能量幅度。

人体辐射的红外线中心波长为910–um,而探测元件的波长灵敏度在0.220–um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7~10–um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。

在这里插入图片描述
热释电人体红外传感器的特点是,它只在由于外界的辐射而引起本身温度变化时,才给出一个相应的电信号,当温度的变化趋于稳定后,就不再有信号输出。所以,热释电信号与它本身的温度变化率成正比,即热释电传感器只对运动的人体敏感。通常,敏感单元材料阻抗非常高,因此要用场效应管进行阻抗变换后才能实际使用。电路中高阻值电阻Rg 的作用是释放栅极电荷,使场效应管正常工作;采用源极输出时,要外接源极电阻Rs,源极电压约为0.4 ~ l.0V。制成敏感单元的PZT( 锆钛酸铅) 是一种光谱材料,能探测各种波长辐射。为了使传感器对人体最敏感,而对太阳、电灯光等有抗干扰性,传感器采用了滤光片做窗口。滤光片使人体辐射的红外线最强的波长正好落在滤光窗相应波长的中心处,所以滤光窗能有效地让人体所辐射的红外线通过,而阻止太阳光、灯光等可见光中的红外线通过,以免引起干扰。为提高传感器的灵敏度,可在传感器前1 ~ 5cm处放置菲涅尔透镜,使探测距离从一般的2m 提高到10 至20m。在实验室试验时,可不加菲涅尔透镜。在实际应用中,传感器往往需要预热,这是由传感器本身决定的。一般被动红外探测器需要一分钟左右的预热时间。

技术参数
1.工作电压:DC 2.7-12V;
2.静态功耗:<0.1mA;
3.延时时间:2秒;
4.封锁时间:2秒;
5.触发方式:可重复;
6.感应范围:≤100度锥角,3-5米;(需根据具体的透镜)
7.工作温度:-20 - +60℃
8.PCB外形尺寸:10mm*8mm
9.模块透镜:小透镜

功能特点
a、 超小体积,灵敏度高,可靠性强,超低电压工作模式。
b、抗干扰性增强,内部采用数字信号处理,直接高低电平输出。
c、 全自动感应:人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。
d、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后延时,才变为低电平(即:感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。

模块的VOUT脚输出的是开关量,有人接近感应模块时,输出高电平,人离开后恢复成低电平。所以,可接单片机的任何一个IO脚都行,可采用查询法,查询所接引脚的状态,就知道VOUT脚是高电,还是低电平,从而判是否有人接近了。在这里插入图片描述

程序

main函数

#include "stm32f10x.h"   // Ï൱ÓÚ51µ¥Æ¬»úÖÐµÄ  #include <reg51.h>
#include "usart.h"
#include "bsp_hc_sr501.h"
#include "bsp_led.h" 
#include "bsp_systick.h"


//¶¨ÒåÒ»¸öÈ«¾Ö±äÁ¿a£¬½«#include "stm32f10x_it.h"ÖеIJÎÊý´«Èë
extern int a;

int main(void)
{
	
	// À´µ½ÕâÀïµÄʱºò£¬ÏµÍ³µÄʱÖÓÒѾ­±»ÅäÖóÉ72M¡£
 USART_Config();		
 LED_GPIO_Config();
	EXTI_SR501_Config();
	
printf("»¶Ó­Ê¹ÓÃÈËÌå¸ÐӦģ¿é\n");	
	

while(1)
{
	
printf("³É¹¦\n");
	SysTick_Delay_ms(1000);

}

	
	
	
	
}

.c

#include "bsp_hc_sr501.h"
#include "usart.h"




static void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  
  /* ÅäÖÃNVICΪÓÅÏȼ¶×é1 */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  
  /* ÅäÖÃÖжÏÔ´£º°´¼ü1 */
  NVIC_InitStructure.NVIC_IRQChannel = SR501_OUT_EXTI_IRQ;
  /* ÅäÖÃÇÀÕ¼ÓÅÏȼ¶ */
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  /* ÅäÖÃ×ÓÓÅÏȼ¶ */
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  /* ʹÄÜÖжÏͨµÀ */
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
  
}


void EXTI_SR501_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure; 
	EXTI_InitTypeDef EXTI_InitStructure;

	/*¿ªÆô°´¼üGPIO¿ÚµÄʱÖÓ*/
	RCC_APB2PeriphClockCmd(SR501_OUT_GPIO_CLK,ENABLE);
												
	/* ÅäÖà NVIC ÖжÏ*/
	NVIC_Configuration();
	
/*--------------------------GPIOÅäÖÃ-----------------------------*/
	/* Ñ¡Ôñ°´¼üÓõ½µÄGPIO */	
  GPIO_InitStructure.GPIO_Pin = SR501_OUT_GPIO_PIN;
  /* ÅäÖÃΪ¸¡¿ÕÊäÈë */	
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD ;
  GPIO_Init(SR501_OUT_GPIO_PORT, &GPIO_InitStructure);

	/* Ñ¡ÔñEXTIµÄÐźÅÔ´ */
  GPIO_EXTILineConfig(SR501_OUT_EXTI_PORTSOURCE, SR501_OUT_EXTI_PINSOURCE);
  EXTI_InitStructure.EXTI_Line = SR501_OUT_EXTI_LINE;
	
	/* EXTIΪÖжÏģʽ */
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
	/* ÉÏÉýÑØÖÐ¶Ï */
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  /* ʹÄÜÖÐ¶Ï */	
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}


.h文件

#ifndef __BSPHC_SR501_H
#define __BSPHC_SR501_H
#include "stm32f10x.h" 


//Òý½Å¶¨Òå
#define SR501_OUT_GPIO_PORT         GPIOA
#define SR501_OUT_GPIO_CLK          (RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO)
#define SR501_OUT_GPIO_PIN          GPIO_Pin_4

#define SR501_OUT_EXTI_PORTSOURCE   GPIO_PortSourceGPIOA
#define SR501_OUT_EXTI_PINSOURCE    GPIO_PinSource4
#define SR501_OUT_EXTI_LINE         EXTI_Line4
#define SR501_OUT_EXTI_IRQ          EXTI4_IRQn

#define SR501_IRQHandler            EXTI4_IRQHandler

 

void EXTI_SR501_Config(void);
void HC_SR_GPIO_Config(void); 
void HC_SR_RECEIVE(void);	
#endif /*__BSP_HC_SR501_H*/

在这里插入图片描述

在这里插入图片描述

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
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值