Raspberry Pi 3でLEDと戯れる
Jul 10, 2016 01:39 · 404 words · 1 minute read
まずは今回の回路図から。
ブレッドボード上の左側の塊がLピカ/Lチカ/Lカチ全てに必要な回路で、右側はLカチに必要な回路。
Lピカ
LEDを単純に光らせる。以下のサンプルコードではコマンドライン引数で光らせる時間[s]を指定できるようにしている。
Lpika.py
:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
argvs = sys.argv
argc = len(argvs)
l = 0
if (argc > 1):
try:
l = float(argvs[1])
except ValueError:
print "数値を入力してください"
if (l > 0):
do = True
while do:
GPIO.output(11, True)
time.sleep(l)
do = False
GPIO.cleanup()
Lチカ
LEDを点滅させる。以下のサンプルコードでは0.4秒間隔で10回点滅したら終了する。
Ltika.py
:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
i = 0
while i < 10:
GPIO.output(11, True)
time.sleep(0.2)
GPIO.output(11, False)
time.sleep(0.2)
i += 1
GPIO.cleanup()
Lカチ
スイッチのオンオフでLEDを制御する。ここでは敢えて一旦スイッチの情報をRaspberry Piに取り込んでからそれをLEDに伝搬させている。
Lkati.py
:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import RPi.GPIO as GPIO
import sys, time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.IN)
GPIO.setup(11, GPIO.OUT)
def overwrite(s):
sys.stdout.write("\r\033[K" + s)
sys.stdout.flush()
try:
while True:
if GPIO.input(12):
GPIO.output(11, True)
overwrite("On")
else:
GPIO.output(11, False)
overwrite("Off")
time.sleep(0.01)
except KeyboardInterrupt:
pass
GPIO.cleanup()