0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MachiKaniaで焦電型赤外線センサーモジュールを使う

Last updated at Posted at 2025-11-15

はじめに

PicoMiteでも試したRaspberry Pi Picoへの入力として焦電型赤外線(人感)センサーモジュール SB412Aを使い、センサーで人を検出した時に出力の赤色LEDを転送させる仕組みをMachiKaniaで試しました。

検証環境

下記の環境で動作を検証しました。

接続

Raspberry Pi Picoと焦電型赤外線センサー、赤色LEDは下記のように接続しました。
SB412AのVoutの接続ポートとして最初にGP0を試しましたがなぜかハイレベルの入力値しか得られなかったのでGP1に接続しました。他のGP2〜GP9でもうまく動作しました。

Pico(GP) Pico(物理) SB412A LED
GP1 2 Vout Vout
GP22 29 -- アノード
3V3 36 + --
GND 38 - カソードー抵抗器

SB412-Pico_ブレッドボード.png

焦電型赤外線センサーは基板上の半固定抵抗器の値で出力の保持時間が決まります。何とか調整して2秒ほどに設定されています。

プログラム

SB412Aの出力を取得し、H(1)のときにLEDを点灯するようにしました。SB412Aの状態の確認とLEDへの出力はタイマー割り込みを使用して定期的に実行するようにしました。
また、LCDへの表示はGEN3Oクラスを使って大きな文字で表示するようにしました。

SB412A.BAS
USECLASS GEN3O
USEGRAPHIC
K=NEW(GEN3O,88,"UTF-8")
CLS
C=0
REM タイマ割り込みを1000マイクロ秒(1ミリ秒)ごとに発生
USETIMER 1000
REM タイマー割り込みルーチンを指定
INTERRUPT TIMER,SB412A

WHILE INKEY()=0:WEND

END

REM 割り込みルーチン
LABEL SB412A
  REM SB412A出力の取得
  A=IN(1)
  REM SB412Aの出力が直前と異なり、Hレベルtのときカウンターを増加
  IF B!=A AND A=1 THEN C=C+1
  REM メッセージ表示
  POINT 0,30
  K.GPRT("検出回数:"+DEC$(C)+"回",7,8)
  REM LEDをオンあるいはオフ
  OUT 12,A
  REM 現在の状態を記憶
  B=A
RETURN

実行結果

以下が実行です。

SB412A.jpeg

さいごに

タイマー割り込みを使うことで無限ループ内で実行するよりもスムーズに動作しているように感じられました。

最初にSB412Aを接続したGP0はなぜだかSB412Aの出力を常にH(ハイレベル)としても読み取る現象が起きていました。GP1〜GP9では正しくSB412Aの出力をちゃんと読み取れました。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?