HC-SR501人体红外感应程序
时间:10-02
整理:3721RD
点击:
请各位大神看一下 不管传感器前面有人没人 只要一通电 灯就一直亮 蜂鸣器也一直响 这是什么原因?
#include "reg52.h"
#include<intrins.h>
sbit BEEP=P1^5; //蜂鸣器端口
sbit IN=P3^7; //红外输出端
sbit LED1=P2^7; //指示灯1
void delay(unsigned int i)
{
unsigned int j;
{
for(;i>0;i--)
for(j=0;j<123;j++)
{;}
}
}
/*******************************************************************************
* 函数名 : main
* 函数功能 : 主函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void main()
{
IN=0;
while(1)
{
if((IN==0))
{
LED1=1; //关闭红色指示灯
BEEP=1; //关闭蜂鸣器
}
if(IN==1)
{
char k;
for(k=30;k>0;k--)
{
LED1=0; //打开红色指示灯
BEEP=0; //打开蜂鸣器
delay(3);
BEEP=1;
delay(3);
}
}
}
}
#include "reg52.h"
#include<intrins.h>
sbit BEEP=P1^5; //蜂鸣器端口
sbit IN=P3^7; //红外输出端
sbit LED1=P2^7; //指示灯1
void delay(unsigned int i)
{
unsigned int j;
{
for(;i>0;i--)
for(j=0;j<123;j++)
{;}
}
}
/*******************************************************************************
* 函数名 : main
* 函数功能 : 主函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void main()
{
IN=0;
while(1)
{
if((IN==0))
{
LED1=1; //关闭红色指示灯
BEEP=1; //关闭蜂鸣器
}
if(IN==1)
{
char k;
for(k=30;k>0;k--)
{
LED1=0; //打开红色指示灯
BEEP=0; //打开蜂鸣器
delay(3);
BEEP=1;
delay(3);
}
}
}
}
注意看模块说明书,没用过这个模块,不过说明书上说上电后有1分钟的初始化时间,如果1、2分钟后还是有这个现象,试试找个东西屏蔽模块,注意灯光等干扰,以及注意模块的感应范围。
做传感器类的调试时,要有可以屏蔽传感器的物体,以此来屏蔽传感器代表类似感应到无人的状态。