で買ったLEDを光らせる。
3色フルカラーSMD LEDモジュールで、RGBの各PINに0-255のアナログ値を書き込むことで色を表現する。
ところが、Raspberry Piにはアナログ出力がない。デジタル出力をPWM制御し疑似アナログ化するらしいが、今回はひとまず光らせることだけを目標とする。
RaspberryPiの設定
接続は単純に、
- B:17
- R:27
- G:22
- GND:GNDPIN
とした。

まず、/sys/class/gpio/exportに、書き込み用のファイルを生成する。 ここでは、17,27,22のGPIOを利用するものとして、
echo 17 > /sys/class/gpio/export echo 27 > /sys/class/gpio/export echo 22 > /sys/class/gpio/export
とした。
続いて、Raspberry PiのGPIOを入力に使うのか出力に使うのかを設定する。 ここでは出力なので、outに設定する。
echo out > /sys/class/gpio/gpio17/direction echo out > /sys/class/gpio/gpio27/direction echo out > /sys/class/gpio/gpio22/direction
最後に、出力(0or1)を設定する。
echo 1 > /sys/class/gpio/gpio17/value
これで、青色に光る。
スクリプト化
こんなファイル名を覚えておけるわけがないので、スクリプト化しておく。
#!/bin/sh
func_led_on ()
{
echo 1 > /sys/class/gpio/gpio${1}/value
}
func_led_off ()
{
echo 0 > /sys/class/gpio/gpio${1}/value
}
BLUE=17
RED=27
GREEN=22
echo "Conncet GPIO ${BLUE}:B."
echo "Connect GPIO ${RED}:R."
echo "Connect GPIO ${GREEN}:G."
echo "Connect GND."
sudo echo $BLUE > /sys/class/gpio/export
sudo echo $RED > /sys/class/gpio/export
sudo echo $GREEN > /sys/class/gpio/export
sudo echo out > /sys/class/gpio/gpio${BLUE}/direction
sudo echo out > /sys/class/gpio/gpio${RED}/direction
sudo echo out > /sys/class/gpio/gpio${GREEN}/direction
echo "done."
echo "Test Start."
func_led_on $BLUE
sleep 1
func_led_off $BLUE
func_led_on $RED
sleep 1
func_led_off $RED
func_led_on $GREEN
sleep 1
func_led_off $GREEN
echo "Test End."
再起動後も有効にする
これらのファイルは再起動すると削除されるようなので、/etc/rc.localに追記して起動に自動で実行されるようにする。
sudo emacs /etc/rc.local /home/pi/tweetTenki/setupGpioForLed.sh