|
在本篇文章中,我们将学习PIR传感器的工作原理以及如何将其与Arduino开发板一起用于检测人体运动。
PIR传感器如何工作 首先让我们来了解一下工作原理。该模块实际上由一个热电传感器组成,该传感器在受热时会产生能量。
这意味着当人或动物体进入传感器的范围时,它将检测到移动,因为人体或动物体以红外辐射的形式发射热能。这就是传感器名称的来源,被动式红外线传感器(Passive Infra-Red Sensor)。术语“被动”意味着传感器不使用任何能量进行检测,它只是通过检测其他物体释放的能量来工作。
该模块还包括一个名为菲涅耳透镜的专门设计的盖子,它将红外信号聚焦到热释电传感器上。
PIR传感器模块HC-SR501 该模块只有三个引脚,用于为模块供电的接地和VCC,以及一个在检测到物体时提供高逻辑电平的输出引脚。它还有两个电位器。一个用于调节传感器的灵敏度,另一个用于调节检测到物体时输出信号保持高电平的时间。此时间可在0.3秒至5分钟之间调整。
该模块还有三个引脚,其中两个引脚之间有一个跳线。这些引脚用于选择触发模式。第一个称为“不可重复触发”,其工作方式如下:当传感器输出为高电平且延迟时间结束时,输出将自动从高电平变为低电平。另一种称为“可重复触发”的模式将始终保持输出高电平,直到检测到的物体出现在传感器的范围内。
所需的组件 本篇文章使用的组件如下所示: ● PIR传感器模块HC-SR501 ● 5V继电器模块 ● Arduino开发板 ● 面包板和跳线 ● 电缆、插头、插座
电路原理图 作为本文的一个示例,我将制作一个电路,当传感器检测到物体时,该电路将打开高压灯。以下是电路原理图。传感器的输出引脚将连接到Arduino开发板上的8号引脚,当检测到物体时,7号引脚将激活继电器模块,高压灯将亮起。
有关继电器模块如何工作的更多详细信息,您可以查看我的Arduino继电器教程。
源代码 以下是这个例子的Arduino代码。这很简单。我们只需要将PIR传感器引脚定义为输入,将继电器引脚定义为输出。使用digitalRead()函数,我们读取传感器的输出,如果它为高电平或如果检测到一个对象,它将激活继电器。为了激活继电器模块,我们将发送一个逻辑低电平,因为继电器输入引脚反向工作。 - /* Arduini PIR Motion Sensor Tutorial
- *
- * by Dejan Nedelkovski, www.HowToMechatronics.com
- *
- */
- int pirSensor = 8;
- int relayInput = 7;
- void setup() {
- pinMode(pirSensor, INPUT);
- pinMode(relayInput, OUTPUT);
- }
- void loop() {
- int sensorValue = digitalRead(pirSensor);
- if (sensorValue == 1) {
- digitalWrite(relayInput, LOW); // The Relay Input works Inversly
- }
- }
复制代码
请注意,在为传感器模块供电后,需要大约20-60秒来“预热”才能正常工作。 现在,当您将手放在传感器前面时,继电器将点亮灯。 但请注意,即使您经常移动手,在调整的延迟时间结束后,灯将熄灭,因为PIR传感器处于“不可重复的触发”模式。 如果您使用跳线将传感器更改为“可重复触发”模式并且您不断移动手,则灯将持续亮起,并且在移动消失且设置的延迟时间结束后它将熄灭。 |