もうすぐ0.1㌧

株式会社スマレジの営業部(首都圏)で働く中の人のブログ

Vol.61 ラズパイでLチカ(後編)

こんばんは。

株式会社スマレジ 首都圏営業部のキタショウです! 

今回は前回の続き、後編です。

 


・書いたコードのこと 


 

【書いたコードのこと 】

 

f:id:kitashow:20210130184119j:plain

 

では、実際のコードは勉強しながら記述したので、少し解説します。

  1. import RPi.GIOP as GPIO
  2. GPIO.setmode(GPIO.BCM)
  3. GPIO.setwarnings(False)
  4. GPIO.setup(18,GPIO.OUT)
  5. 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に戻ってくる、といった簡単な回路です。一応プログラムで制御していますが、わざわざこうしなくても感は否めませんよね。

 

ではつぎ、チカチカするほうです。 

  1. import RPi.GIOP as GPIO
  2. import time
  3. GPIO.setmode(GPIO.BCM)
  4. GPIO.setwarnings(False)
  5. GPIO.setup(18,GPIO.OUT)
  6. count = 0
  7. while count < 5:
  8.     GPIO.output(18,GPIO.HIGH)
  9.     time.sleep(1)
  10.     GPIO.output(18,GPIO.LOW)
  11.     time.sleep(1)
  12.     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がチカチカするわけですね。

 

興味が出た方は是非やってみてください、とっても面白いですよ!

 


 

では、本日はこの辺りで。