そういえば昔、ナイトライダーのフロントのLED表現してみたいなというのを思い出して今ならできるなと作ってみました。
利用したパーツ
(秋月電子)
ブレッドボード1枚 200円
ジャンパーワイヤ オスオスセット60本以上 220円
ジャンパーワイヤ メスメスセット10本 330円
カーボン抵抗1kΩセット100本 100円
黄色LED10個入り(OS5YKA3131A) 200円
ブレッドボードはこんな感じ。
ブレッドボードのLED上がわにアノード(+側がならんでいます)
LEDは左からGPIOの26,19,13,6,5,11,9,10,22につながっていて、右端(-側)はGroundに接続です。
ソースは最初がナイトライダー風で次が123と表示しているサンプルです。
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) def pinSet(pin_num,sw): if pin_num in [22,10,9,11,5,6,13,19,26]: if sw==0: GPIO.setup(pin_num, GPIO.OUT) GPIO.output(pin_num, GPIO.LOW) if sw==1: GPIO.setup(pin_num, GPIO.OUT) GPIO.output(pin_num, GPIO.HIGH) def main(): led=[22,10,9,11,5,6,13,19,26] px=0 dx=1 for i in range(200): for j in range(9): pinSet(led[j],0) pinSet(led[px],1) if px==8:dx=-1 if px==0:dx=1 px+=dx time.sleep(0.02) GPIO.cleanup() main()
import RPi.GPIO as GPIO import time """ y=[] y+=["113567788888876444222122331111"] y+=["113567788888888645423223342111"] y+=["113566677788888854433335664111"] y+=["124577766678888875554567775111"] y+=["124676556788888887752123676211"] y+=["224542211577888888642354367211"] y+=["234424523557788887544455667411"] y+=["234555666777788887777777777511"] y+=["235677777777778888888888887611"] """ y=[] y+=["000000000000000000000008888800"] y+=["000880000000888880000080000080"] y+=["008080000008000008000000000080"] y+=["000080000000000008000000000800"] y+=["000080000000000008000000888000"] y+=["000080000000000880000000000800"] y+=["000080000000088000000000000080"] y+=["000080000000800000000000000080"] y+=["008888880008888888880088888800"] GPIO.setmode(GPIO.BCM) def pinSet(pin_num,sw): if pin_num in [22,10,9,11,5,6,13,19,26]: if sw==0: GPIO.setup(pin_num, GPIO.OUT) GPIO.output(pin_num, GPIO.LOW) if sw==1: GPIO.setup(pin_num, GPIO.OUT) GPIO.output(pin_num, GPIO.HIGH) def main(): led=[22,10,9,11,5,6,13,19,26] for t in range(10): for px in range(len(y[0])): for n in range(1,9): time.sleep(0.005) for py in range(9): if int(y[py][px])>=n: pinSet(led[py],1) else: pinSet(led[py],0) GPIO.cleanup() main()