课程表

Arduino 基础

Arduino 函数库

Arduino 进阶

Arduino 项目

Arduino 传感器

Arduino 电机控制

Arduino 声音

工具箱
速查手册

Arduino PIR传感器

当前位置:免费教程 » 程序设计 » Arduino

PIR传感器允许您感测运动。 它们用于检测人是否移入或移出传感器的范围。 它们通常存在于家庭或企业中使用的电器和小工具中。 它们通常被称为PIR,“被动红外”,“热电”或“IR运动”传感器。

以下是PIR传感器的优点 - 

  • 体积小
  • 宽镜头范围
  • 易于界面
  • 廉价
  • 低电量
  • 使用方便
  • 不会磨损
 

PIR传感器

 

 

PIR由热电传感器制成,圆形金属罐在中心具有矩形晶体,其可以检测红外辐射的水平。 一切都发射低水平的辐射,和更热的东西,越多的辐射发射。 运动检测器中的传感器分成两半。 这是为了检测运动(变化),而不是平均IR水平。 两个半部被连接,使得它们彼此抵消。 如果一半看到比另一个更多或更少的红外辐射,输出将摆动高或低。

 

PIR

 

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

 

可调设置

 

 

对于许多基本项目或需要检测一个人离开或进入该区域的产品,PIR传感器是伟大的。 请注意,PIR不会告诉您周围的人数或其与传感器的接近程度。 镜头通常固定在一定距离的扫掠,它们有时就像宠物被关在房子里。

 

必需的组件

您将需要以下组件 - 

  • 1 × Breadboard 面包板
  • 1 × Arduino Uno R3
  • 1 × PIR传感器(MQ3)
 

程序

按照电路图进行连接,如下图所示。

电路图

 

草图

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

Sketch

 

Arduino代码

  1. #define pirPin 2
  2. int calibrationTime = 30;
  3. long unsigned int lowIn;
  4. long unsigned int pause = 5000;
  5. boolean lockLow = true;
  6. boolean takeLowTime;
  7. int PIRValue = 0;
  8.  
  9. void setup() {
  10. Serial.begin(9600);
  11. pinMode(pirPin, INPUT);
  12. }
  13.  
  14. void loop() {
  15. PIRSensor();
  16. }
  17.  
  18. void PIRSensor() {
  19. if(digitalRead(pirPin) == HIGH) {
  20. if(lockLow) {
  21. PIRValue = 1;
  22. lockLow = false;
  23. Serial.println("Motion detected.");
  24. delay(50);
  25. }
  26. takeLowTime = true;
  27. }
  28. if(digitalRead(pirPin) == LOW) {
  29. if(takeLowTime){
  30. lowIn = millis();takeLowTime = false;
  31. }
  32. if(!lockLow && millis() - lowIn > pause) {
  33. PIRValue = 0;
  34. lockLow = true;
  35. Serial.println("Motion ended.");
  36. delay(50);
  37. }
  38. }
  39. }

 

代码说明

PIR传感器有三个端 - Vcc,OUT和GND。 按如下所示连接传感器 - 

  • 在Arduino板上连接+ Vcc到+ 5v。
  • 将OUT连接到Arduino板上的数字引脚2。
  • 在Arduino上将GND连接到GND。

您可以通过位于传感器板底部的两个可变电阻器来调整传感器灵敏度和延迟时间。

 

可变电阻器

一旦传感器检测到任何运动,Arduino将通过串行端口发送一条消息,说明检测到运动。 PIR感测运动将延迟一定时间以检查是否存在新运动。 如果没有检测到运动,Arduino将发送一条新消息,说明运动已经结束。

 

结果

如果检测到运动,您将在串行端口上看到一条消息,当运动停止时,将显示另一条消息。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号