当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

Arduino PIR传感器

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-24 10:05:22

由 drbear 创建,youj 最后一次修改 2016-12-26 PIR传感器可以让你感知运动。它们用于检测人是否进入或离开传感器的范围。通常出现在家庭或企业使用的电器和小工具中。它们通常被称为PIR,“被动红外”,“热电”或“IR运动”传感器。以下是PIR传感器的优点:体积小镜头范围广易于界面廉价低电量使用方便不会磨损PIR由热电传感器制成,圆形金属罐中央有一个矩形晶体,可以检测红外辐射的水平。所有东西都发射出低水平的辐射,而东西越热发射的辐射就越多。运动检测器中的传感器分成两半。这是为了检测运动(变化)而不是平均IR水平。两个半部分相互连接,以便彼此抵消。如果一半看到比另一半更多或更少的红外辐射,则输出将摆动高或低。PIR具有可调设置,并在3引脚ground/out/power板上安装了一个接头。对于许多需要在人们离开或进入该区域进行检测的基础项目或产品,PIR传感器是非常有用的。请注意,PIR不会告诉你周围的人数或与传感器的距离。镜头通常固定在有一定距离的扫描范围内,有时候它们会被房子里的宠物带走。必需的组件你将需要以下组件:1 × Breadboard 面包板1 × Arduino Uno R31 × PIR传感器(MQ3)程序按照电路图进行连接,如下图所示。草图在计算机上打开Arduino IDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。Arduino代码#define pirPin 2int calibrationTime = 30;long unsigned int lowIn;long unsigned int pause = 5000;boolean lockLow = true;boolean takeLowTime;int PIRValue = 0;void setup() { Serial.begin(9600); pinMode(pirPin, INPUT);}void loop() { PIRSensor();}void PIRSensor() { if(digitalRead(pirPin) == HIGH) { if(lockLow) { PIRValue = 1; lockLow = false; Serial.println("Motion detected."); delay(50); } takeLowTime = true; } if(digitalRead(pirPin) == LOW) { if(takeLowTime){ lowIn = millis();takeLowTime = false; } if(!lockLow && millis() - lowIn > pause) { PIRValue = 0; lockLow = true; Serial.println("Motion ended."); delay(50); } }}代码说明PIR传感器有三个端子:Vcc,OUT和GND。按如下所示连接传感器: 将+Vcc连接到Arduino板上的+5v。将OUT连接到Arduino板上的数字引脚2。将GND连接到Arduino上的GND。您可以通过位于传感器板底部的两个可变电阻器来调节传感器灵敏度和延迟时间。一旦传感器检测到任何运动,Arduino将通过串口发送一条消息,表示检测到运动。PIR感测运动将延迟一定时间以检查是否存有新的运动。如果没有检测到运动,Arduino将发送一条新消息,说明运动已经结束。结果如果检测到运动,你将在串口上看到一条消息,并在运动停止时看到另一条消息。

Arduino PIR传感器