微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > HC-SR501人体红外感应程序

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);
                        }
                }         
   }
}

注意看模块说明书,没用过这个模块,不过说明书上说上电后有1分钟的初始化时间,如果1、2分钟后还是有这个现象,试试找个东西屏蔽模块,注意灯光等干扰,以及注意模块的感应范围。
做传感器类的调试时,要有可以屏蔽传感器的物体,以此来屏蔽传感器代表类似感应到无人的状态。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top