人体红外传感器

作者:hardihuang   hardihuang   |   贡献者:   Sunny   

每个疯狂的科学家实验室或青少年的秘密室都需要高级保护,以防止流氓特工或兄弟姐妹入侵。如果您是其中之一,则可能应该考虑为您购买被动红外(PIR)传感器。通过PIR传感器,您可以检测不应该有人进入房间的时间。

尽管看起来好像是间谍电影里的东西,但您可能每天都在使用PIR传感器。该传感器与大多数现代安全系统,自动照明开关,车库门开启器以及类似的应用中的传感器相同,在这些应用中,只有在有人在场的情况下才需要操作某些电气设备。

PIR运动传感器如何工作? #

如果您不知道,所有温度高于绝对零温度(0开尔文/ -273.15°C)的物体都会以红外线辐射的形式释放热能,包括人体。一个物体越热,它发出的辐射就越多。

PIR传感器经过专门设计,可检测这种水平的红外辐射。它基本上由两个主要部分组成:一个热释电传感器和一个称为菲涅耳透镜的特殊透镜,该透镜将红外信号聚焦到热释电传感器上。

PIR传感器工作热释电传感器两个检测槽

热释电传感器实际上具有两个矩形狭槽,该狭槽由允许红外辐射通过的材料制成。在它们的后面是两个单独的红外传感器电极,一个负责产生正输出,另一个负责负输出。这样做的原因是我们正在寻找IR级别的变化,而不是环境IR级别的变化。两个电极连接在一起,以便彼此抵消。如果一半的红外辐射比另一半多或少,则输出将摆高或摆低。

当传感器处于空闲状态时,即传感器周围没有运动;两个插槽检测到的红外辐射量相同,从而导致输出信号为零。

但是当像人或动物一样温暖的身体经过时; 它首先截取了PIR传感器的一半,这导致了两半之间的正差分变化。当温暖的身体离开感应区域时,情况会发生相反的变化,从而使传感器产生负的差分变化。相应的信号脉冲导致传感器将其输出引脚设置为高电平。

PIR传感器工作动画差分输出

HC-SR501被动红外探测器 #

对于我们大多数需要检测人员何时离开或进入该区域或接近该区域的Arduino项目,HC-SR501 PIR传感器是一个不错的选择。它们功耗低,成本低,坚固耐用,具有宽广的镜头范围,易于连接并且在业余爱好者中疯狂地流行。

HC-SR501 PIR传感器具有三个输出引脚VCC,输出和接地,如下图所示。它具有内置的稳压器,因此可以通过4.5至12伏的任何DC电压(通常使用5V)供电。除此之外,PIR还有两个选项。让我们检查一下。

具有跳线设置灵敏度时间调整功能的PIR传感器引脚排列BISS0001 IC标签图

板上有两个电位器,可调节两个参数:

  • 灵敏度–设置可以检测到运动的最大距离。范围从3米到大约7米。房间的拓扑结构可能会影响您达到的实际范围。
  • 时间–设置检测后输出将保持高电平的时间。最少3秒,最多300秒或5分钟。

最后,板上有一个跳线(某些型号的跳线未焊接)。它有两个设置:

  • H –这是保持/重复/触发在此位置,只要HC-SR501继续检测到运动,它将继续输出HIGH信号。PIR传感器触发重复模式跳线设置
  • L –这是间歇性的或不重复/不触发的。在此位置,输出将在由TIME电位器调整设置的时间段内保持高电平。PIR传感器不触发不重复模式跳线设置

使HC-SR501 PIR传感器更具通用性 #

HC-SR501电路板具有用于两个其他组件的焊盘。这些通常被标记为“ RT”和“ RL”。请注意,在某些板上,标签可能被与组件相对的一侧的“圆顶”透镜覆盖。

PIR传感器LDR和热敏电阻设置可提高精度
  • RT –用于热敏电阻或温度敏感电阻。除此之外,HC-SR501可以在极端温度下使用,也可以在某种程度上提高检测器的精度。
  • RL –此连接用于光敏电阻(LDR)或光敏电阻。通过添加该组件,HC-SR501将仅在黑暗中运行,这是运动敏感照明系统的常见应用。

可以将其他组件直接焊接到板上,也可以使用电线和连接器将其扩展到远程位置。

HC-SR501 PIR传感器引脚 #

HC-SR501具有一个3针连接器,可将其与外界连接。连接如下:

无源红外PIR传感器的引脚排列图

VCC 是HC-SR501 PIR传感器的电源,我们连接了Arduino上的5V引脚。

输出引脚为3.3V TTL逻辑输出。LOW表示未检测到运动,HIGH表示已检测到某些运动。

地线 应该连接到Arduino的地面。

使用PIR传感器作为独立单元 #

HC-SR501 PIR传感器之所以广受欢迎的原因之一是,HC-SR501是一种用途非常广泛的传感器,其功能十分强大。通过将其连接到Arduino等某些微控制器,您可以进一步扩展其多功能性。对于我们的第一个实验,我们将单独使用HC-SR501来说明它本身是多么有用。

此实验的接线非常简单。电池连接在传感器的VCC和GND之间,一个小的红色LED通过220Ω限流电阻连接到输出引脚。就是这样!

现在,当PIR检测到运动时,输出引脚将变为“高电平”并点亮LED!

在没有Arduino的情况下测试PIR传感器接线的压接连接
这说明了如何在独立应用中使用PIR传感器。

请记住,一旦为电路加电,则需要等待30-60秒,以使PIR适应室内的红外能量。在此期间,LED可能会闪烁一点。等到指示灯熄灭后,再挥动手等在指示灯的前面四处走动,以查看指示灯是否亮起!

接线–将PIR传感器连接到Arduino UNO #

现在我们已经完全了解了PIR传感器的工作原理,我们可以开始将其连接到Arduino了!

将PIR传感器连接到微控制器确实非常简单。PIR用作数字输出,因此您所需要做的就是监听输出引脚将其翻转为HIGH(检测到运动)或LOW(未检测到)。用5V为PIR供电,并将地线接地。然后将输出连接到数字引脚2。

您需要将HC-SR501上的跳线设置为H(重新触发)位置,以使其正常工作。您还需要将TIME设置为最少3秒钟,然后将TIME电位计逆时针旋转到底。将灵敏度设置为任意位置,如果不确定,将其设置为中点。

这样,您现在就可以上传一些代码并使PIR正常工作了。

Arduino用PIR传感器模块接线Fritzing连接
将PIR传感器连接到Arduino UNO

Arduino代码 #

代码非常简单,基本上只是跟踪引脚2的输入是HIGH还是LOW。

int ledPin = 13;                // choose the pin for the LED
int inputPin = 8;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  
  if (val == HIGH)	// check if the input is HIGH
  {            
    digitalWrite(ledPin, HIGH);  // turn LED ON
	
    if (pirState == LOW) 
	{
      Serial.println("Motion detected!");	// print on output change
      pirState = HIGH;
    }
  } 
  else 
  {
    digitalWrite(ledPin, LOW); // turn LED OFF
	
    if (pirState == HIGH)
	{
      Serial.println("Motion ended!");	// print on output change
      pirState = LOW;
    }
  }
}

最后,当检测到运动时,我们将在串行监视器上打印一条消息。

无源红外PIR传感器Arduino草图输出串行监视器
串行监视器上的PIR传感器输出

在设计基于PIR的应用程序之前要考虑的事项 #

与大多数PIR传感器一样,HC-SR501需要一些时间来适应室内的红外能量。首次启动传感器时,此过程需要30到60秒。

另外,传感器在读取后大约有5或6秒的“重置”时间。在此期间,它将不会检测到任何运动。

在基于HC-SR501设计系统时,您需要考虑这些延迟时间。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注