「がんばれない」けど「がんばりたい」

ITエンジニアの仕事のこと。AI、機械学習、ディープラーニング。地頭力。車のこと。

Raspberry Pi 2でスイッチの状態を感知する

タクトスイッチのON/OFFを取得する方法のメモです。

参考「ラズベリーパイで手作り目覚まし時計!ストップボタン編」

初めはこちらを参考にしてたのですが、 幾つか疑問な部分があったので、
そこをメインにしたPOSTになります。


課題

  • タクトスイッチの状態を感知する

02_01


キーワード

  • GPIO
  • プルダウン抵抗
  • directionはin


配線

02_board_01


疑問

参考URLのブログに沿って最初配線をしました。 GPIO2に対してスイッチの入力信号を受けるように。。

で、スイッチをON/OFFしてGPIO2のvalue値をechoしてみたのですが、なぜか常に1。 抵抗を変えたりと、色々試行錯誤したのですが、結果変わらず・・。

「なんでやー!」ってなってしまい、理論的には、おかしいのですが、 GPIO2のモードをinputからoutputにして試してみると、何故か期待通りの値に・・ どおして?(涙

という理由から配線はGPIO2を使用せずにGPIO25につないでいます。 どうもGPIO2はSDAという種類のピンでスイッチ系の入力としては使用しない方が良いようです。このあたりは分かり次第追って・・


コード

1)GPIO25を有効化

echo 25 > /sys/class/gpio/export

2)GPIO25のモードをinputに

echo in > /sys/class/gpio/gpio25/direction

3)GPIO25の値を確認(スイッチをオン/オフしながら)

cat /sys/class/gpio/gpio25/value

  • ON時は1
  • OFF時は0