RasPi3_LED

ラズパイでLチカ(LEDチカチカ)しよう

回路

ブレッドボード

pic_breadboard.jpg

fig1.png

IO2,3はCPU外部で1.8Kプルアップされています。

まずは電源直結で点灯試験

fig2.png

pic1.jpg

点灯することを確認する。点灯しない場合はLEDの向きを確かめる。足の長い方(アノード)を3.3V側にする。

「赤(AK)いLED」と覚える。緑でも青でも「赤(AK)いLED」と覚える。A(アノード) -> K(カソード)の向き。Aがプラス側。

GPIOへ接続

fig3.png

pic2.jpg

点灯が確かめられたら抵抗の先をIO6に接続する。IO6はCPU内部でプルアップされ3.3Vになっている。LEDの両端が3.3Vのため電流は流れず、点灯しない。

GPIOの操作

ラズパイでrootユーザでログインする

root@raspberrypi:~#

IO6を使えるようにする

# echo 6 > /sys/class/gpio/export

入出力方向(direction)の確認

# cat /sys/class/gpio/gpio6/direction
in

出力にする

# echo out > /sys/class/gpio/gpio6/direction
# cat /sys/class/gpio/gpio6/direction
out

この時点でLEDが点灯する

電圧をHigh (3.3V)にする 消灯する

# echo 1 > /sys/class/gpio/gpio6/value

電圧をLow (0V)にする 点灯する

# echo 0 > /sys/class/gpio/gpio6/value

スイッチの読み込み

fig4.png

pic3.jpg

スイッチの片側をGND, 真ん中をIO5に接続する

ラズパイでrootユーザでログインする

root@raspberrypi:~#

IO5を使えるようにする

# echo 5 > /sys/class/gpio/export

入出力方向(direction)の確認

# cat /sys/class/gpio/gpio6/direction
in

入力になっているので value を読む

# cat /sys/class/gpio/gpio5/value
1

スイッチを倒す

# cat /sys/class/gpio/gpio5/value
0

Lチカプログラム

パスが長すぎてタイプが面倒なのでシンボリックリンクを作る

# ln -s /sys/class/gpio/gpio6/value /dev/led0
# ls -l /dev/led0
lrwxrwxrwx 1 root root 27 Oct 26 11:28 /dev/led0 -> /sys/class/gpio/gpio6/value

シェルによるLチカ

# while true               (C言語でいうところの while(1))
> do                       (C言語でいうところの { 中カッコはじめ)
> echo 0 > /dev/led0
> sleep 0.1
> echo 1 > /dev/led0
> sleep 0.1
> done                     (C言語でいうところの } 中カッコ閉じ)

C言語によるLチカ

fileled_control.c

$ gcc -O2 -g -Wall led_control.c -o led_control
$ ./led_control

関連

自動リンク

外部リンク