赤外線モーションセンサモジュール(HC-SR505)を試してみる


赤外線モーションセンサモジュール(HC-SR505)を入手したので紹介します。
写真のようにHC-SR501をぐっと小さくしたような感じです。
早速HC-SR501と比較してみました。




性能比較ではArduinoを使用し、スケッチは以下のとおりです。
遠くからでもセンサーの反応状態が分かるように、センサーが反応したら8番ピンのLEDをONにします。

#define pirPin 2
#define outPin 8

int val;

void setup() {
  Serial.begin(9600);
  pinMode(pirPin,INPUT);
  pinMode(outPin,OUTPUT);
  digitalWrite(pirPin,LOW);
  digitalWrite(outPin,LOW);
}

void loop() {
  val = digitalRead(pirPin); //read state of the PIR
 
  if (val == LOW) {
    Serial.println("No motion"); //if the value read is low, there was no motion
    digitalWrite(outPin,LOW);
  }
  else {
    Serial.println("Motion!"); //if the value read was high, there was motion
    digitalWrite(outPin,HIGH);
  }

  delay(1000);
}

HC-SR501とHC-SR505の比較結果ですが、反応性能はほぼ同じか、若干HC-SR505の方が遠い距離で反応します。
一番違うのはVOUTがHIGHになった後の挙動です。
センサーが反応してからじっとしていると、HC-SR501の方は1秒か2秒後にはVOUTがLOWになりますが
HC-SR505の方は8秒から9秒間、VOUTがHIGHの状態がつづきます。

こ ちらのページで調べてみると、ちゃんとしたHC-SR501ならば、Trigger Modeのジャンパーピンで
"repeated trigger mode" か "unrepeated trigger mode" を選べるのですが、私の持っているHC-SR501は安物なので
このジャンパーピンが省略されています。

つまり(私の持っている)HC-SR501は "unrepeated trigger mode" になっていて
HC-SR505は"repeated trigger mode" になっているようです。
そのあたりを考慮して、プログラムによってはVOUTがONになった後の処理を変える必要があるかもしれません。
今回はライトセンサーなので同じロジックでも問題ないでしょう。
HC-SR505の方がライトが灯いている時間が少し長くなるだけです。

続く....