豚吐露@wiki

GPIO制御

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

Raspbian GPIO制御


RaspberryPi3 ModelB
Raspbian GNU/Linux 9 (stretch)
Raspbian Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux


GPIO制御

以下は、Raspbianに用意されてる仕組みを使ってGPIOを制御する例。
効率良く制御したいなら、他の方法の方が良いと思う。

基本的に、制御に関係する情報は以下に格納されてる。
/sys/class/gpio/

portを有効・無効にする
21番を有効にする場合は、以下を実行。
$ echo 21 > /sys/class/gpio/export
これを実行すると『/sys/class/gpio/gpio21』ってdirができる。
『gpio21』には、21番のGPIOを制御するためのものが色々格納されてる。

ちなみに、
$ echo 21 > /sys/class/gpio/unexport
って実行すると、『/sys/class/gpio/gpio21』が消える。使えんくなる訳です。

有効にした後、lsすると
$ ls -la /sys/class/gpio
total 0
-rwxrwx--- 1 root gpio 4096 2018-11-10 09:16:16 export*
lrwxrwxrwx 1 root gpio 0 2018-11-10 09:16:16 gpio21 -> ../../devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio21/
-rwxrwx--- 1 root gpio 4096 2018-11-10 09:14:19 unexport*

他のsiteの例でも21番が良く使われるが、これは分かり易い場所にあるからかと。
pin headerで一番USBに近い2pin。縁に近い方が21番で、その隣がGNDで使い勝手が良い。

portの入出力を設定する
$ cat /sys/class/gpio/gpio21/direction
in

gpio dir内のdirectionで入出力を制御。
21番を出力portに設定する。
$ echo out > /sys/class/gpio/gpio21/direction

再び入力portに設定する。
$ echo in > /sys/class/gpio/gpio21/direction

出力値を設定する
HighLevelは3.3V。

LowLevel出力
$ echo 0 > /sys/class/gpio/gpio21/value
HighLevel出力
$ echo 1 > /sys/class/gpio/gpio21/value

入力値を取得する
入力portを3.3V(1番pin:USBから一番遠い2pinの内縁から遠い方)に接続すると1。
$ cat /sys/class/gpio/gpio21/value
1
GNDに接続すると0が取得できる。
$ cat /sys/class/gpio/gpio21/value
0





更新日: 2022年12月06日 (火) 10時28分26秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
ウィキ募集バナー