流れ的にRasPiのGPIO使ってLEDチカチカさせておきます。
使ったパーツ
抵抗4.7kΩ x 10 / バーLED(OSX10201-R) VF:2.1V
(3.3-2.1)/4700 = 0.255mA のはず。

ジャンパーワイヤー適当にぶっ刺してます。
ソースコード(Python)※各LEDのGPIOはPIN番号です。
import RPi.GPIO as GPIO
import time
P_OFF = 0
P_ON = 1
P_55 = 2
P_AA = 3
P_HIGH = 4
P_LOW = 5
# LED 10bit
Pattern = [
0b0000000000,
0b1111111111,
0b0101010101,
0b1010101010,
0b1000000000,
0b0000000001,
]
bar = [ 31,33,35,37,26,40,38,36,24,32 ]; # BAR-LED : Use GPIO(PIN.#)
########################################################################
# GPIO INIT.
GPIO.setmode(GPIO.BOARD)
GPIO.setup(bar, GPIO.OUT)
GPIO.output(bar,GPIO.LOW)
########################################################################
def outLED(flg,wt):
global bar
sb = 0x001
for i in bar:
if(flg & sb):
GPIO.output(i,GPIO.HIGH)
else:
GPIO.output(i,GPIO.LOW)
sb <<= 0x001;
time.sleep(wt)
########################################################################
# init pattern demo
for pt in Pattern:
outLED(pt,0.5)
# flash demo
for lp in range(30):
outLED(Pattern[P_ON ],0.05)
outLED(Pattern[P_OFF],0.05)
# shift demo
ptn = Pattern[P_LOW]
lrf = 0;
for lp in range(9*6+1):
outLED(ptn,0.05)
if lrf == 0:
ptn <<= 0x001 if ptn == Pattern[P_HIGH]: lrf = 1 else: ptn >>= 0x001
if ptn == Pattern[P_LOW]:
lrf = 0
outLED(Pattern[P_OFF],1)
# 55-AA Demo
for lp in range(20):
outLED(Pattern[P_55],0.1)
outLED(Pattern[P_AA],0.1)
outLED(Pattern[P_OFF],1)
GPIO.cleanup()
print("Prog.End")
# EOF


コメント