焦電型赤外線モーションセンサ HC-SR501
2023.05.14

●HC-SR501
焦電型(しょうでんがた)赤外線センサで視野内の生体と背景温度との温度差による赤外線エネルギー量の変化を検知する人体検出用の赤外線センサです。

・動作電圧: DC4.5-20VDC
・待機時消費電流:65uA以下
・保持時間:約8秒~15分以上、半固定抵抗[Tx]で調整
・最大検知距離:7m(気温等に依存)、半固定抵抗[Sxで調整
・検知角度:120度
・検知出力電圧:3V(検知時), 0V(非検知時)
(制御ICと基板の出力端子間に1.5kΩの抵抗が直列挿入)
・次の検出までの待機時間:約2秒
・動作モード:リピートモード(検知後、保持時間内に動体を検知すると再延長されます)
・焦電センサ制御IC:BISS0001
・基板サイズ:32x24mm
・ネジ穴:2mm、28mm間隔
・レンズ:直径23mmドーム型

| Output |
HIGH:検知 LOW:非検知 |
| Sensitivity Adjust |
赤外線検知感度調整。検知距離を調整します。
左に回すと近くに、右に回すと遠くになります。
|
| Time Delay Adjust |
延長時間調整。検知状態の保持時間を調整します。
左に回すと短く、右に回すと長くなります。
|
| Jumper Set |
H:検知後に延長時間内に再検知した場合、延長時間が再延長されます。
L:延長時間内に再検知しても保持時間の延長は行いません。
|
●Adafruit QT Py - SAMD21 Dev Board with STEMMA QT
マイコンには QT Py SAMD21 を使っていますが、普通のArduino UNOで構いません。
| LED | | QT Py SAMD21 | | SR501 |
| | | 5V | - | Vin |
| | | A2 | - | SIG |
| (+) | 330Ω | A3 | | |
| (-) | ----- | GND | - | GND |
ソースコードのビルドには、PlatformIOを使用しています。
Arduino開発環境構築 PlatformIO
ボード情報を確認します。
$ pio boards 'Adafruit QT Py'
Platform: atmelsam
===================================================================
ID MCU Frequency Flash RAM Name
----------------- ---------- --------- ----- ---- -----------------
adafruit_qt_py_m0 SAMD21E18A 48MHz 256KB 32KB Adafruit QT Py M0
プロジェクトを作成します。
$ mkdir ~/QTPySAMD21/SR501
$ cd ~/QTPySAMD21/SR501
$ pio init -b adafruit_qt_py_m0
$ vi platformio.ini
[env:adafruit_qt_py_m0]
platform = atmelsam
board = adafruit_qt_py_m0
framework = arduino
platform_packages = toolchain-gccarmnoneeabi @ 1.40803.0
board_build.mcu = samd21e18a
board_build.f_cpu = 48000000L
build_flags = -D SAMD21
upload_protocol = sam-ba
$ vi src/sr501.ino
const int SENCER_PIN = A2;
const int LED_PIN = A3;
boolean status = LOW;
void setup() {
pinMode(SENCER_PIN,INPUT);
pinMode(LED_PIN,OUTPUT);
}
void loop() {
status = digitalRead(SENCER_PIN);
digitalWrite(LED_PIN,status);
if(status) {
// describe code
}
delay(500);
}

手をセンサにかざすと LED が点灯します。
●補足:Adafruit QT Py SAMD21 UF2ブートローダーの更新
Update the UF2 Bootloader
QT Py SAMD21は癖が強く、不安定なように思えます。ビルド時にコアを吐くようなら、ブートローダーを更新してみましょう。
[RESET] ボタンをダブルクリックして、UF2 ブート ドライブをコンピューターにマウントされたドライブとしてファイル ブラウザー ウィンドウに表示します。
QTPY_BOOTドライブが表示されたら、ファイル ブラウザ ウィンドウでドライブをクリックし、INFO_UF2.TXTファイルをダブルクリックして、中身を確認します。
表示されるブートローダーのバージョンが v3.14.0 以前の場合は、 更新する必要があります。
UF2 Bootloader v1.23.1-adafruit.1-328-gf06693a-dirty SFHWRO
Model: QT Py M0
Board-ID: SAMD21E18A-QTPy-v0
QT Py の https://www.circuitpython.org ダウンロード ページからブートローダー アップデーターの最新バージョンをダウンロードします。
Update UF2 Bootloader
QTPy_m0-v3.15.0.uf2 (またはそれ以降のバージョン) ファイルをQTPY_BOOTドライブにドラッグします。ボード上の NeoPixel の色が変わってから緑色に戻り、ファイル ブラウザにQTPY_BOOTドライブが再び表示されます。その後、QTPY_BOOTドライブをクリックし、 INFO_UF2.TXT を再度 ダブルクリックして、ブートローダーが最新バージョンに更新されたことを確認します。
UF2 Bootloader v3.15.0 SFHWRO
Model: QT Py M0
Board-ID: SAMD21E18A-QTPy-v0
■参考文献
・Arduinoで焦電型赤外線センサを使ってみる
・PIR(人感センサー)の使い方
|