Raspberry PiのGPIOを制御してLEDを点滅
Raspberry PiのGPIOを制御してLEDを点滅する方法。
※本サイトを参考にして被った損害、怪我、事故、障害、不都合、不利益等に関して責任は一切負いません。
- 使用部材
- Raspberry Pi Model B x 1台
- ブレッドボード x 1個
- 抵抗100Ω x 1本
- LED(SLR343BTT32) x 1本
- ジャンパケーブル x 数本
抵抗は、GPIOが3.3VでLEDの順方向電圧が2.7Vとして、(3.3V-2.7V)/5mA=120Ωというような計算。
※120Ωの抵抗持っていないので、100Ωを使った。多少電流増えるがまぁー大丈夫だろう。
GPIO17(ピン番号11)--抵抗100Ω--(アノード)LED(カソード)--GND(ピン番号25)となるように接続する。
1. rootになって
$ sudo su
2. GPIO17(ピン番号11)を使います
# echo "17" > /sys/class/gpio/export
3. GPIO17のディレクトリが作成されて
# ls /sys/class/gpio/ export gpio17 gpiochip0 unexport # ls /sys/class/gpio/gpio17/ active_low direction edge power subsystem uevent value
4. GPIO17を出力として使います
# echo "out" > /sys/class/gpio/gpio17/direction
5. GPIO17の出力をONして、LEDが点灯
# echo "1" > /sys/class/gpio/gpio17/value
6. GPIO17の出力をOFFして、LEDが消灯
# echo "0" > /sys/class/gpio/gpio17/value
7. GPIO17を使うのをやめます
# echo "17" > /sys/class/gpio/unexport
8. GPIO17のディレクトリが削除される
# ls /sys/class/gpio/ export gpiochip0 unexport
例えば、下記スクリプトを作成して実行すれば、LEDが10回点滅して終了する。
#!/bin/bash echo "17" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio17/direction for i in `seq 1 10` do echo "1" > /sys/class/gpio/gpio17/value echo "0" > /sys/class/gpio/gpio17/value done echo "17" > /sys/class/gpio/unexport
次は制御するGPIOの数を増やして数個のLEDをピカピカさせるか、PWM制御で明るさ調整してみる。