Arduino中国 | Flamingo EDA

May/08

25

人体运动传感器原型

千万不要认为这个几十块钱的小玩意能够检测出诸如运行速度和方向这样的高级特性,它只是一个基于红外释电原理的人体检测传感器,而且是只能检测出运动中的人体来,也就是说如果你站着基本不动的话,这个传感器是拿你一点办法都没有的;-)

这是一个数字传感器, 电路虽然看起来有点复杂,但使用起来的原理却异常简单:当有人运动到它的作用范围内的时候,输出高电平信号,该信号会持续一段时间(0.3秒到18秒),持续时间可以由传感器上的电位器来进行调节。当调到下图中的位置时,输出信号的持续时间最短:

由于是简单的数字信号输出,因此只要完成相应的信号线与Arduino的连接,就可以使用该模块了:

对应的程序也非常简单,跟数字按钮模块的程序基本一样:


int ledPin = 13;
int switchPin = 2;
int value = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(switchPin, INPUT);
}

void loop() {
  value = digitalRead(switchPin);
  if (HIGH == value) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

说了这么多,你一定认为该模块使用起来非常容易,但真正要用好它可不容易。其中的一个问题就是透镜的选择,需要根据应用的实际需要进行相应的选择。常用的有7m和3m两种透镜,其有效距离在透镜的正前方为7m和3m左右。需要注意的是,并不是透镜越远越好,你需要模拟你应用的需要进行相应的选取,如果你需要在人进入距离传感器3m以内的区域才触发,就应该选用小的透镜。

No tags

7 comments

  • Howie · 2008/05/26 at 6:17 PM

    T_T ,太感动了。。。我要的东东。。。

  • ppp586 · 2009/10/21 at 3:52 PM

    你好,我将“digitalWrite(ledPin, HIGH);”
    改为:Serial.print(1);
    在Serial.Monitor 中观察,怎么没有反应。

  • Author comment by flamingoeda · 2009/10/23 at 1:37 PM

    试下Serial.print(1, DEC)或者Serial.print(“1″)。

  • badbat · 2009/11/09 at 6:14 PM

    pir v2.0上面的三根脚分别是怎么分布的?+5v,ground,out?

  • Author comment by flamingoeda · 2009/11/10 at 8:51 PM

    板子正面拿的时候,黑色座在右侧,从上到下依次是Gnd, VCC, OUT。

  • tpctm · 2010/08/10 at 5:38 PM

    请问:
    哪里有 Arduino 器材买啊???

  • Author comment by flamingoeda · 2010/09/06 at 6:47 PM

    可以到shop.flamingoeda.com购买Arduino相关的硬件;-)

Leave a Reply

使用新浪微博登录

<<

>>

Theme Design by devolux.nh2.me