基本その2。マオです。
前回の終わりに次はプログラムでーなんて書いてあったけど、もう一つの基本をコマンドでやる事にする。
今回はタクタイルスイッチを使う。
タクタイルスイッチとは簡単に言えば押す事によって回路が繋がるボタンだ。
ボタンが押されたかをRaspberryPiで検出する。
一般ではタクトスイッチと呼ばれているけど、これは商標らしい(キャタピラーと同じような感じ、正式名称はクローラーである)。
足が4本あるけど、2本ずつで回路が繋がっていて、ボタンを押すと全部が繋がる。
なので接続する時には注意が必要だ。
タクタイルスイッチで分断するように、GPIOとGroundに繋ぐ。
本来ならば今回の回路にはプルアップ抵抗という物を入れなければならない。
入れないとノイズやら静電気やらで電圧が安定せずに、正常に状態の検知が出来ない。
RaspberryPiには内部に抵抗が付いていて、設定でそこら辺を制御して安定させる事が出来るのだ。
接続が終わったらコマンドで制御する。
例としてGPIO16を使用する。
rootで作業をする。
echo 16 > /sys/class/gpio/export
GPIO16を確保する。
次は設定。
echo "in" > /sys/class/gpio/gpio16/direction
前回はoutを指定していたけど、今回は入力なのでinを指定する。
echo "high" > /sys/class/gpio/gpio16/direction
highの部分がプルアップ抵抗の設定になる。
これで準備は完了だ。
cat /sys/class/gpio/gpio16/value
このコマンドで0か1が表示される。
ボタンを押さない状態だと1が表示され、ボタンを押すと0が表示される。
echo 16 > /sys/class/gpio/unexport
最後にピンを開放して終了だ。
今回はGroundと接続したが、電源と接続するパターンもある。
その場合は抵抗設定をhighではなくlowを指定する(プルダウン抵抗という)。
結果は逆転してボタンを押さない状態だと0が表示される。
注意するべき点は、電圧は3.3vまでしか許容されていない所だ。
RaspberryPiには5v電源があるが、これを入力してしまうと壊れるので気を付けよう。
以上で、入力も出来るようになった。
次回こそはプログラムを使ってみたいなぁ。