普通人体会发射lOμm左右的特定波长红外线,用专门设计的传感器可以针对性地检测这种红外线存在与否。当人体红外线照射到传感器后,因热释电效应,将向外释放电荷.后续电路经检测处理后就能产生控制信号。这种专门设计的探头只对波长为lOμm左右的红外辐射敏感,所以除人体以外的其他物体不会引发探头动作。探头内包含两个互相串联或并联的热释元件,而且制成的两个电极方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生的释电效应相互抵消,于是探测器无信号输出。一旦有人侵入探测区域,人体红外辐射通过部分镜面聚焦,并被热释元件接收,但是两片热释元件接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。
实现红外感应管理模块的核心函数如下所示.
const struct _suhDavicelnfo subDeviceList[suaDEyICE_NUMBER]={
{
ZD-THERMO_SEWSOR;
ZD_ READ;
"InfrarSensor";//光照传感器
"",
"",
};
};
char buftestSensor[10];
char GetME003S(void)
{
char Portl;
PlDIR&=~(1<<1);
if(PI_1)
return l:
else
retum 0:
}
void SubDariceReceiveDataParse( uint8 cmd, uint8 suhDev,uinta dataLen,uinta*data)
{
if( subDev>= O&&subDev<SUBDEVICE_NUMBER)
{
char*res;
switch(subDev)
{
case0:
res=buftestSensor;
sprintf(RES,"%d",GetME003S());
break;
}
if (res)
DeviceCommandResponse(cmd,subDev,osal_strlen(res)+1,res);
else
DeviceCommandResponse( cmd, subDev, 0, 0) ;
}
}