流れ的に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
コメント