Puzzle - PIR Motion Sensor 运动探测传感器

来自Duinopeak_COM
跳转至: 导航搜索

产品简介

这是一个极易使用的PIR运动探测传感器。通过这个传感器,你可以使你的作品对运动,例如人类的运动作出互动。只要将其接到Puzzle - Base Shield上,并且下载程序,当有人走入它的探测范围时,PIR运动探测传感器就会在它的SIG脚上输出一个HIGH信号。它的探测范围和灵敏度是可以通过板上的两个电位计调节的。探测范围的最大值为6m,而灵敏度的可调范围是0.3s - 25s。
PIR Motion.jpg

产品规格

  • 工作电压: 5V
  • 工作电流(VCC=3V): 100uA
  • 工作电流(VCC=5V):150uA
  • 探测半径:0.1-6m
  • 延时:1-25S
  • 工作波长:7-14um
  • 探测角度:120°

应用示例

以下是一个简单的运动探测的应用示例。当有人在它的探测半径内走动,PIR运动探测传感器就会在它的SIG脚上输出一个HIGH信号,使LED会亮起。

/*****************************************************************************/
/*macro definitions of PIR motion sensor pin and LED pin*/
#define PIR_MOTION_SENSOR 2                   //Use pin 2 to receive the signal from the module 
#define LED	4                              //the Puzzle - LED is connected to D4 of Arduino
void setup()
{
       pinsInit();
}
void loop() 
{
       if(isPeopleDetected())                 //if it detects the moving people?
            turnOnLED();
       else
            turnOffLED();
}
void pinsInit()
{
       pinMode(PIR_MOTION_SENSOR, INPUT);
       pinMode(LED,OUTPUT);
}
void turnOnLED()
{
       digitalWrite(LED,HIGH);
}
void turnOffLED()
{
       digitalWrite(LED,LOW);
}
/***************************************************************/
/*Function: Detect whether anyone moves in it's detecting range*/
/*Return:-boolean, ture is someone detected.*/
boolean isPeopleDetected()
{
      int sensorValue = digitalRead(PIR_MOTION_SENSOR);
      if(sensorValue == HIGH)              //if the sensor value is HIGH?
        {
            return true;                   //yes,return ture
        }
      else
        {
            return false;                   //no,return false
        }
}

Note: 测量范围和延时都是可调的。当顺时针旋转旋钮时,探测半径会从6m逐渐减少到几厘米。另一个电位计是调节延时的,顺时针旋转时,它的延时会从25s减少到1s。PIR的工作模式分为可重复触发以及不可重复触发两种,当你将板上的开关拨到H时,PIR处于可重复触发状态,拨到L时,处于不可重复触发状态。

参考资料