2021年2月9日火曜日

Raspberry pi GPIO



ラズパイ GPIO

リンク先参照  過去の記事にもある


https://docs.microsoft.com/ja-jp/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpi






https://tool-lab.com/raspi-gpio-controlling-command-1/  ここも参照すべき

/sys/class/gpio/export
仮想ファイルexportにそれぞれのポート番号を指定して、ポートファイル(ディレクト)を吐き出させる

sudo echo 17 > /sys/class/gpio/export  で gpio17 の下にそれぞれの仮想ファイルが生まれる。それらのファイルに値を書き込めば、GPIOから出力
入力はその逆で、仮想ファイルを読めばよい。  これが概要。。



【制御のながれ】

GPIO18ピンに接続したLEDを点灯、消灯してみます。/sys/class/ディレクトリのアクセスはroot権限が必要sudoコマンドを使用します。

GPIO18ピンを使うよ宣言 :仮想ファイルの/sys/class/gpio/exportにGPIO番号を書き込み

pi@raspberrypi ~ $ sudo echo 18 > /sys/class/gpio/export
GPIO18ピンを制御できる準備ができました。

pi@raspberrypi ~ $ ls /sys/class/gpio/
export gpio18 gpiochip0 unexport
::gpio18ディレクトリが生成されています。

pi@raspberrypi ~ $ ls /sys/class/gpio/gpio18/
active_low direction edge power subsystem uevent value

gpio18/directionに入力か出力かの書き込みをして、gpio18/valueに0か1を書き込んでLEDの点灯、消灯を行います。

GPIO18ピンを出力ピンとして設定

pi@raspberrypi ~ $ sudo echo out > /sys/class/gpio/gpio18/direction
LEDの点灯、消灯が制御できるようになりました。

点灯

pi@raspberrypi ~ $ sudo echo 1 > /sys/class/gpio/gpio18/value
LEDが点灯したか。うまく点灯しない場合は回路接続、入力したコマンドなどをもう一度確認

次にLEDを消灯してみます。
pi@raspberrypi ~ $ sudo echo 0 > /sys/class/gpio/gpio18/value

GPIO18ピンの制御が終わったら、最後に使わない宣言
pi@raspberrypi ~ $ sudo echo 18 > /sys/class/gpio/unexport

pi@raspberrypi ~ $ ls /sys/class/gpio/
export gpiochip0 unexport
gpio18/ディレクトリがなくなっています。

Raspberry Piでは仮想ファイルを使ってSoCのGPIOピンを制御する。

0 件のコメント:

コメントを投稿