Skip to content

sample_pirMotion

Ko-ichiro Sugiyama edited this page Feb 5, 2025 · 4 revisions

fae5144e-2775-46d7-9085-67ab737b1cb4_600x450

特徴

  • センサーの反応する範囲は広い.角度 < 120 度.そのため,センサーの真正面ではなく斜め前くらいに手を近づけても反応する (戻り値 1).
  • センサの前に手をかざした時,常に戻り値が 1 なわけではない.手をかざした瞬間に戻り値が 1 になり,手をかざしつづけても戻り値は 0 と 1 を繰り返す.
  • センサの前から手を遠ざけても,数秒間は戻り値が 0 と 1 を繰り返す.
  • したがって,戻り値が 1 になったら,数秒の待ち時間を入れるのがよさそう.

サンプル (良くない例)

2025-02-05.215708.mp4

以下,GPIO 13 に接続した PIR モーションセンサーで検知.戻り値を標準出力に表示する.GPIO は 13 ではなく,例えば入力専用の 36 などでも良い.

sw1  = GPIO.new( 13, GPIO::IN | GPIO::PULL_UP )

loop do
  puts sw1.read
  sleep 0.2
end

サンプル (これが期待される動作か)

2025-02-05.220203.mp4

以下,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
Clone this wiki locally