2021-04-28

本文介绍了如何使用Arduino构建一个既能检测人体红外活动又能接收远程控制信号的报警系统。通过模拟输入读取红外传感器数据,并结合串口通信进行LED灯控制。关键代码示例和调整参数的说明有助于理解整个过程。
摘要由CSDN通过智能技术生成

                                                                                                                              Arduino人体红外报警系统设计

        人体红外报警的程序本身极其简单,只需要执行模拟数值输入函数:analogRead(analogPin);即可从模拟口读到红外传感器的相应数值。当可侦测的范围内没有没有人体红外辐射温度(热释电)变化时返回的数值较小,当有人体红外辐射温度(热释电)变化时返回的数值较大,当返回的数值大于100时,判断有人在活动。当然,此值可以调试直到找到合适的值。

       为了实现项目提出的不仅返回人体红外警报信号,还要能从串口输入控制信号控制LED灯亮和灭,因此,还要加入基本的判断处理,代码如下:

int  LEDPin=13;                //人体感应LED灯的引脚

int  analogPin=3;             //人体感应电位器(中间的引脚)连接到模拟输入引脚3

int  buttonState=LOW;     //人体感应读取的当前按键状态

void  setup()

{

   //声名引脚为输入模式

   pinMode(analogPin,INPUT);

   pinMode(LEDPin,OUTPUT);

   Serial.begin(9600);

}

char  A_D='A';                //区别执行人体红外自动检测和远程控制红灯

void  loop()

{

   if(Serial.available())

{

   A_D=Serial.read();

}

digitalWrite(LEDPin, LOW);

if(A_D=='1')             //远程指挥

{

digitalWrite(LEDPin, HIGH);      //红灯亮

delay(100);

}

if(A_D=='0')              //远程指挥

{

digitalWrite(LEDPin, LOW);           //红灯亮

}

if(A_D=='A')                    //人体红外检测处理程序

{     //人体感应处理

buttonState=analogRead(analogPin);           //从输入引脚读取数值

//注意,人体红外传感器读取间隔默认2.5秒

if(buttonState>100)

{           //如果读入数值大于200,说明有人进入区域。一般测到人体红外,返回数值为670左右

digitalWrite(LEDPin,HIGH);            //红灯亮

Serial.println(buttonState);

Serial.print("In:");

Serial.print(buttonState);           //显示读取的数值

Serial.println("");

delay(2000);              //让灯亮一段时间

}

else{

digitalWrite(LEDPin,LOW);

}

}

}

        下载到Arduino  UNO板后,可以从串口输入A、1、0等值查看输出结果,观察Arduino LED小灯的变化情况。对人体的探测会出现间隔反应延时的情况,这是因为人体红外检测传感器读取默认间隔是2.5s。这个间隔时间是可调的。

       

       

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值