今回はいつも調べてしまう、ラズパイでのGPIO制御についてまとめておこうと思います!!
毎度調べるのも手間なので。。。
■環境
今回はraspberry Pi 4を用いて動作確認し、そちらの紹介を行っていきます。
【国内正規代理店品】Raspberry Pi4 ModelB 4GB ラズベリーパイ4 技適対応品【RS・OKdo版】 新品価格 |
ただ、raspberry Pi 3でも動作する手順になっています。
■ピン配置の確認
まずはraspberry Piのピン配置について記載していきます。
公式(https://www.raspberrypi.org/documentation/usage/gpio/README.md)より、ピン配置はこちら。
コマンドによりピン配置の確認ができます。
こちらのコマンドを実行すると、
pinout
こちらのようにピン配置の結果が得られます。
■コマンドでのGPIO制御
では早速GPIO制御についてまとめていきたいと思います!!
今回使用するGPIOですが、
out:gpio17
in:gpio27
で設定していきたいと思います!!
gpio**の部分を自分が使用したいgpioの番号をセットすればOKです。
GPIOを制御するにあたって、
/sys/class/gpio
配下に格納されたファイルを操作していきます。
まずは使用するGPIOを定義していきます。
こちらのようにコマンドを実行すればOKです。
echo 27 > /sys/class/gpio/export echo 17 > /sys/class/gpio/export
すると、/sys/class/gpio配下に
gpio27、gpio17
が追加されているかと思います。
次に、gpio17、gpio27をin outに変更していきたいと思います。
gpio27をinにするには、
echo in > /sys/class/gpio/gpio27/direction
とすればよく、
gpio17をoutにするためには、
echo out > /sys/class/gpio/gpio17/direction
とすればOKです。
■動作確認
では、正しく設定されているか確認してみます。
GPIOのon(1)/off(0)は、
/sys/class/gpio/gpio17/value /sys/class/gpio/gpio27/value
まずはinから!!
あらかじめGPIO17へボタンを接続しておきます。
ボタン押下せずに
cat /sys/class/gpio/gpio27/value
を実行すると、
0
が表示されるかと思います。
ボタンを押下しながら、
cat /sys/class/gpio/gpio27/value
を実行すると、
1
が表示され、gpioのinが有効になっていることが確認できます。
次にout!!
あらかじめLEDを接続しておきます。
echo 1 > /sys/class/gpio/gpio17/value
とするとLEDが点灯し、
echo 0 > /sys/class/gpio/gpio17/value
とするとLEDが消灯することが確認できるかと思います。