sample_pirMotion - gfd-dennou-club/mrubyc-esp32 GitHub Wiki
特徴
- センサーの反応する範囲は広い.角度 < 120 度.そのため,センサーの真正面ではなく斜め前くらいに手を近づけても反応する (戻り値 1).
- センサの前に手をかざした時,常に戻り値が 1 なわけではない.手をかざした瞬間に戻り値が 1 になり,手をかざしつづけても戻り値は 0 と 1 を繰り返す.
- センサの前から手を遠ざけても,数秒間は戻り値が 0 と 1 を繰り返す.
- したがって,戻り値が 1 になったら,数秒の待ち時間を入れるのがよさそう.
サンプル (良くない例)
https://github.com/user-attachments/assets/56738f12-4eb1-43b9-a943-b6f7a7a40ae5
以下,GPIO 13 に接続した PIR モーションセンサーで検知.戻り値を標準出力に表示する.GPIO は 13 ではなく,例えば入力専用の 36 などでも良い.
sw1 = GPIO.new( 13, GPIO::IN | GPIO::PULL_UP )
loop do
puts sw1.read
sleep 0.2
end
サンプル (これが期待される動作か)
https://github.com/user-attachments/assets/fff2ae9f-6e2d-4f9f-95c7-d7c5b01d350c
以下,GPIO 13 に接続した PIR モーションセンサーで検知.戻り値を標準出力に表示する.GPIO は 13 ではなく,例えば入力専用の 36 などでも良い.
sw1 = GPIO.new( 13, GPIO::IN | GPIO::PULL_UP )
loop do
puts sw1.read
if sw1.read == 1
sleep 6
else
sleep 0.2
end
end