Vol.61 ラズパイでLチカ(後編)
こんばんは。
株式会社スマレジ 首都圏営業部のキタショウです!
今回は前回の続き、後編です。
・書いたコードのこと
【書いたコードのこと 】
では、実際のコードは勉強しながら記述したので、少し解説します。
- import RPi.GIOP as GPIO
- GPIO.setmode(GPIO.BCM)
- GPIO.setwarnings(False)
- GPIO.setup(18,GPIO.OUT)
- GPIO.output(18,GPIO.HIGH)
import RPi.GPIO as GPIO
これはよくある呪文と覚えてください、とのことでした。笑
import はライブラリやパッケージなど、ということですが、この記述を行うことにより、
Raspberry piのGPIOポートを使えるようにしているようです。
GPIO.setmode(GPIO.BCM)
ちょっとうまく説明できないんですが、(GPIO.BOARD)と書く場合との違いは、
BOARD = ピン番号で指定
BCM = GPIO番号番号で指定
をします。
Lチカをしている配線は、ピン番号で言うと12ですが、BCMでsetmodeしているので、GPIO番号の18で指定しています。
これちょっと頭こんがらがりますね、、。
GPIO.setwarnings(False)
これは、以前に使っていたGPIOボードの状態が残っていた時に出力されるエラーを抑制するもの、だそうです。あまり気にしなくてもいいようです。
GPIO.setup(18,GPIO.OUT)
GPIO 18を出力としてセットアップ、といった感じです。
GPIO.output(18,GPIO.HIGH)
GPIO18に電流を流します。
といった感じですね。
18番のGPIOを指定し、そこに電流を流し、回路的にはGroundに戻ってくる、といった簡単な回路です。一応プログラムで制御していますが、わざわざこうしなくても感は否めませんよね。
ではつぎ、チカチカするほうです。
- import RPi.GIOP as GPIO
- import time
- GPIO.setmode(GPIO.BCM)
- GPIO.setwarnings(False)
- GPIO.setup(18,GPIO.OUT)
- count = 0
- while count < 5:
- GPIO.output(18,GPIO.HIGH)
- time.sleep(1)
- GPIO.output(18,GPIO.LOW)
- time.sleep(1)
- count += 1
import time
timeモジュールを使えるようにします。
これにより、プログラムの中で時間を扱えるようになります。
count = 0
count は関数です。名前の通りカウントする時に使います。
ここでは、count関数に0を代入しています。
while count < 5:
while文を使います。繰り返しですね。
さっき0を代入したcount関数の中身が5になるまで繰り返します。
whileで繰り返すのは以下の通り。
GPIO.output(18,GPIO.HIGH)
time.sleep(1)
GPIO.output(18,GPIO.HIGH)
time.sleep(1)
count += 1
上から、
18番に電流を流す
1秒待つ
18番の電流を止める
1秒待つ
countを1増やす
となります。
これにより、LEDがチカチカするわけですね。
興味が出た方は是非やってみてください、とっても面白いですよ!
では、本日はこの辺りで。