|
红外(IR)传感器通常用于测量距离,但它们也可用于检测物体。通过将几个红外传感器连接到Arduino开发板,您可以制作一个入侵警报器。
简介 红外(IR)传感器通常用于估计物体的距离,但您也可以使用它们来检测物体的存在。红外传感器由红外发射器和红外接收器组成。发射器输出红外辐射脉冲波,同时接收器检测到任何反射。如果接收器确实检测到反射,则意味着在传感器前方有一定距离的物体。如果没有反射,那么就没有物体。
我们在这个项目中使用的红外传感器是一个尖形的红外测距仪。这些传感器具有小型线性电荷耦合器件(CCD)阵列,可检测IR辐射返回传感器的角度。如下图所示,传感器将红外脉冲发射到场中,当传感器前面有物体时,脉冲以物体与传感器的距离成比例的角度反射回传感器。传感器的接收器检测并输出角度,通过使用此值可以计算出距离。
通过将一对红外传感器连接到Arduino开发板,我们可以制作出一款简易的入侵报警系统。我们将传感器连接到门侧柱,通过正确安装传感器,我们可以检测到是否有人通过门。当有人通过时,IR传感器的输出将发生变化,我们将通过使用Arduino连续读取IR传感器的输出来检测此变化。在本篇文章中,我们知道当IR传感器的输出值超过400时,物体正在通过门。当发生这种情况时,Arduino会将警报设置为ON。要复位警报,用户可以按下按钮。
需要的硬件 ● 2个红外传感器 ● Arduino Mega2560开发板 ● 蜂鸣器 ● 按钮 ● 470欧电阻 ● NPN晶体管 ● 连接导线
接线图 本篇文章的电路如下图所示。两个IR传感器的输出连接到A0和A1。另外两根导线连接到5V和GND。 12V蜂鸣器通过晶体管连接到引脚3,用于关闭警报OFF的按钮连接到引脚4。
下面的照片显示了我们如何将传感器粘贴到门侧柱进行此实验。当然,您可以采用不同的方式安装传感器,以实现更稳定的安装。
设置 1. 将Arduino开发板的5V和GND引脚连接到传感器的+ 5V和接地端子。您也可以从外部为它们供电。 2. 将传感器输出端子连接到Arduino的A0和A1引脚。 3. 通过1K电阻将Arduino引脚3连接到晶体管的基极。 4. 将12V连接到晶体管的集电极上。 5. 将12V蜂鸣器的正极连接到发射极,负极连接到地。 6. 通过按钮将Arduino引脚4连接到5V。最好将一个小电阻连接到一侧,以避免过大的电流流动。 7. 使用USB线连接Arduino,然后使用Arduino IDE软件将程序上传到Arduino开发板。 8. 使用电源、电池或USB电缆向Arduino开发板供电。
代码 - const int buzzer=3; // pin 3 is the buzzer output
- const int pushbutton=4; // pin 4 is the pushbutton input
- void setup()
- {
- pinMode(buzzer,OUTPUT); //configure pin 4 as OUTPUT
- pinMode(pushbutton,INPUT); //configure pin 4 as INPUT
- }
- void loop()
- {
- int sensor1_value=analogRead(A0); //read the output of both sensors and compare to the threshold value
- int sensor2_value=analogRead(A1);
- if (sensor1_value>400||sensor2_value>400)
- {
- while(true)
- {
- digitalWrite(buzzer,HIGH); //sets the alarm ON
- if(digitalRead(pushbutton)==HIGH)
- break;
- }
- }
- else
- digitalWrite(buzzer,LOW); //turn off alarm
- }
复制代码 |