概述
人体红外传感器基本原理是检测人或者动物发出的红外线并用经过菲泥尔滤光片增强后聚集到红外感应源上,将感应的红外信号转化为电信号。本实验利用人体红外传感器检测人或者动物运动发出的红外线,发出警报。
元件清单:
Zduino UNO × 1;
OJ传感器扩展板 × 1;
USB数据线 × 1 ;
3p杜邦线 × 2 ;
人体红外传感器 × 1 ;
蜂鸣器模块 × 1 ;
知识要点:
无源蜂鸣器与有源蜂鸣器的区别:有源蜂鸣器内部有提供一定频率的震荡,所以当通电时就会发出声响。而无源蜂鸣器则没有震荡,若通电的数字信号频率一直保持不变则无源蜂鸣器不会发出声音。从而用arduino驱动无源蜂鸣器,可以通过修改频率让蜂鸣器唱歌发出美妙动听的音乐。
人体红外原理:人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,被动式红外探头就是靠探测人体发射的10UM左右的红外线而进行工作的。人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。
连线示意图:
蜂鸣器模块对应接3号数字IO口。
人体红外传感器对应接2号数字IO口,注意传感器3个引脚顺序分别为GND OUT VCC(取下白色透镜便可看到定义引脚的丝印),利用杜邦线分别连接至arduino的 – 2 + 相应引脚上,切勿接反。
/*
www.openjumper.cn
日期:2013.5.18
IDE 版本:1.0.1
功能:利用人体红外模块检测一定范围内的动物运动状态,如果检测到有输出则发出
警报。
*/
int Sensor_pin = 2;
int Buzzerpin = 3;
void Alarm() //蜂鸣器发出警报
{
for(int i=0;i<100;i++){
digitalWrite(Buzzerpin,HIGH); //发声音
delay(2);
digitalWrite(Buzzerpin,LOW); //不发声音
delay(2); //修改延时时间,改变发声频率
}
}
void setup()
{
pinMode(Sensor_pin,INPUT); //设置人体红外接口为输入状态
pinMode(Buzzerpin,OUTPUT); //设置蜂鸣器接口为输出状态
}
void loop()
{
int val=digitalRead(Sensor_pin); //定义参数存储人体红外传感器读到的状态
if(val == 1) //如果检测到有动物运动(在检测范围内),蜂鸣器发出警报
{
Alarm();
}
else
{
return;
}
delay(100); //延时100毫秒
}