PIR传感器允许您感测运动。 它们用于检测人是否移入或移出传感器的范围。 它们通常存在于家庭或企业中使用的电器和小工具中。 它们通常被称为PIR,“被动红外”,“热电”或“IR运动”传感器。
以下是PIR传感器的优点 -
- 体积小
- 宽镜头范围
- 易于界面
- 廉价
- 低电量
- 使用方便
- 不会磨损
PIR由热电传感器制成,圆形金属罐在中心具有矩形晶体,其可以检测红外辐射的水平。 一切都发射低水平的辐射,和更热的东西,越多的辐射发射。 运动检测器中的传感器分成两半。 这是为了检测运动(变化),而不是平均IR水平。 两个半部被连接,使得它们彼此抵消。 如果一半看到比另一个更多或更少的红外辐射,输出将摆动高或低。

PIR具有可调设置,并且在3-pin ground/out/power中安装了接头。

对于许多基本项目或需要检测一个人离开或进入该区域的产品,PIR传感器是伟大的。 请注意,PIR不会告诉您周围的人数或其与传感器的接近程度。 镜头通常固定在一定距离的扫掠,它们有时就像宠物被关在房子里。
必需的组件
您将需要以下组件 -
- 1 × Breadboard 面包板
- 1 × Arduino Uno R3
- 1 × PIR传感器(MQ3)
程序
按照电路图进行连接,如下图所示。

草图
在计算机上打开Arduino IDE软件。 在Arduino语言编码将控制你的电路。 通过单击新建打开一个新的草图文件。

Arduino代码
- #define pirPin 2
- int 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。 按如下所示连接传感器 -
- 在Arduino板上连接+ Vcc到+ 5v。
- 将OUT连接到Arduino板上的数字引脚2。
- 在Arduino上将GND连接到GND。
您可以通过位于传感器板底部的两个可变电阻器来调整传感器灵敏度和延迟时间。

一旦传感器检测到任何运动,Arduino将通过串行端口发送一条消息,说明检测到运动。 PIR感测运动将延迟一定时间以检查是否存在新运动。 如果没有检测到运动,Arduino将发送一条新消息,说明运动已经结束。
结果
如果检测到运动,您将在串行端口上看到一条消息,当运动停止时,将显示另一条消息。
转载本站内容时,请务必注明来自W3xue,违者必究。