PIRモーションモジュール(HC-SR501)

../_images/13_pir_module.png

概要

受動赤外線(PIR)モーションセンサーは、動きを検出するセンサーです。これは、セキュリティシステムや自動照明システムでよく使用されています。センサーには、赤外線放射を検出するための二つのスロットがあります。物体(人間など)がセンサーの前を通過すると、赤外線放射量が変化するのを検出し、出力信号が生成されます。

原理

PIRセンサーは、2つのスロットに分かれており、それぞれが差動アンプに接続されています。静止した物体がセンサーの前にある場合、2つのスロットは同じ量の放射線を受け、出力はゼロです。動く物体がセンサーの前にある場合、一方のスロットは他方よりも多くの放射線を受け、出力が高いまたは低いと変動します。この出力電圧の変化は、動きの検出によるものです。

../_images/13_pir_working_principle.jpg

感知モジュールが配線された後、1分間の初期化が行われます。初期化中には、モジュールは0〜3回の間隔で出力します。その後、モジュールはスタンバイモードになります。モジュールの表面から光源やその他の干渉源を遠ざけることで、干渉信号による誤動作を防ぎましょう。また、風の影響も避けるため、風が少ない環境での使用が望ましいです。

../_images/13_pir_module_back.png

感知距離の調整

感知距離の調整用ポテンショメータのノブを時計回りに回すと、感知距離の範囲が広がり、最大で約0-7メートルになります。反時計回りに回すと、感知距離の範囲が狭まり、最小で約0-3メートルになります。

遅延時間の調整

遅延調整用ポテンショメータのノブを時計回りに回すと、感知遅延が増加します。感知遅延の最大は約300秒です。反対に、反時計回りに回すと、最小5秒で遅延が短縮されます。

二つのトリガーモード

ジャンパーキャップを使用して、異なるモードを選択できます。

  • H: 連続トリガーモード。人体を感知した後、モジュールは高レベルを出力します。その後の遅延期間中も感知範囲内に誰かが入ると、出力は高レベルのままです。

  • L: 非連続トリガーモード。人体を感知すると高レベルを出力し、遅延後に自動的に低レベルに戻ります。

使い方

使用する電子部品

  • Arduino Uno R4またはR3ボード * 1

  • PIRモーションモジュール * 1

  • ジャンパーワイヤー

回路の組み立て

注釈

フレネルレンズによってピンマーキングが隠れています。これを開いて確認することができます。

../_images/13_pir_module_circuit.png

コード



コードの説明

  1. PIRセンサーピンの設定。PIRセンサーのピンは2番ピンとして定義されています。

    const int pirPin = 2;
    int state = 0;
    
  2. PIRセンサーの初期化。 setup() 関数内で、PIRセンサーのピンを入力として設定します。これにより、ArduinoがPIRセンサーの状態を読み取れるようになります。

    void setup() {
      pinMode(pirPin, INPUT);
      Serial.begin(9600);
    }
    
  3. PIRセンサーからの読み取りと結果の表示。 loop() 関数内で、PIRセンサーの状態は継続的に読み取られます。

    void loop() {
      state = digitalRead(pirPin);
      if (state == HIGH) {
        Serial.println("Somebody here!");
      } else {
        Serial.println("Monitoring...");
        delay(100);
      }
    }
    

    もし状態が``HIGH``であれば、つまり動きが検出された場合、「誰かいる!」とシリアルモニターに表示されます。それ以外の場合は、「監視中...」と表示されます。

追加アイデア

  • 動きが検出された際に点灯または点滅するLEDを追加することができます。これにより、シリアルモニターメッセージに加えて視覚的なフィードバックが得られます。

  • 動きが検出されたときに警報音を鳴らすブザーを組み込むことができます。

その他のプロジェクト