稼働中

マイクロビット(e_29)HC-SR501 人体センサー

焦電型赤外線センサーモジュール

HC-SR501は焦電型赤外線センサ(パイロセンサ)です。動きのある人体を検知します。
静止していると検知しません。

外観

HC-SR501の外観です。ドームはフレネルレンズらしいです。<100°の範囲で検知するそうです。
HC-SR501外観
ドームは簡単に外せました。中央に焦電センサがあります。窓材はシリコンでしょうか?人体検知の感度と検出後の出力保持時間を可変抵抗で調整できます。感度は検知する距離で3m~7m、保持時間は3秒~5分だそうです。
また、単発出力、検知毎に出力のモードをジャンパーで切替出来ます。
HC-SR501の基板
HT7133-1は電源ICでLDO 3.3Vです。HC-SR501のOUT信号は3.3Vです。
BISS0001はPIR Motion Detector ICだそうです。
HC-SR501の部品

実体図

HC-SR501を駆動するのに外部の5V電源を接続、HC-SR501のOUT端子とmicro:bitのpin16に接続、HC-SR501のGNDとmicro:bitのGNDも接続するだけなので接続図は省略しました。以下は実体図です。
HC-SR501実体図

スクリプト

HC-SR501の動作を確認します。
人体検知したらmicro:bitのディスプレイにイメージのHAPPYを表示させます。
スクリプトは以下のようにしました。※microbit-micropythonを使っています。


hcsr501_test_01.py
from microbit import *
#HC-SR501 PIR  motion on > display HAPPY
dpin=pin16          # HC-SR501 out を micro:bitのpin16に接続
dpin.set_pull(dpin.PULL_DOWN)   # pinの予約
display.clear()
pir=0                       # HC-SR501の出力'0,1'
cnt=0                       # ‘1’の連続回数
for i in range(200):
    pir=dpin.read_digital()
    if pir==1:
        cnt=cnt+1
        if cnt==1:
            display.show(Image.HAPPY)
    else:
        cnt=0
        display.clear()
    print('%3d'%i, '%2d'%pir, '%2d'%cnt) #55  1 20 =>4sec
    sleep(200)

display.clear()

実行結果

人体動作を検知すると実体図のようにImage.HAPPYが表示されます。


hcsr501_test_01.py
>>> %Run -c $EDITOR_CONTENT
  0  0  0
  1  0  0
  2  0  0
  3  1  1   # 検出(繰返し数 OUT値 '1'連続数)
  4  1  2
  5  1  3
  6  1  4
省略
 19  1 17
 20  1 18
 21  1 19
 22  1 20   # 約200msecx20 4秒間出力を保持
 23  0  0
 24  0  0
 25  0  0
省略

保持時間を最小にしてみると1.5secでした。(説明書きでは3秒)長い方は調べてません。

まとめ

HC-SR501の動きのある人体検知動作を確認しました。検知出力をmicro:bitに読み込んでディスプレイ表示をしました。