フルカラーLEDをpigpioで動作
接続
LED 1—-Grenn 2—-Blue 3—-common 4—-Red
R 220Ω 220Ω 220Ω
PI 27 22 GND 18
レンジを256にしPWMで32ステップづつ発光させて、全色表示
GPIOのモード pi.set_mode(pins[i], pigpio.OUTPUT)
GPIOのON pi.write( pins[i], pigpio.HIGH)
周波数の設定 pi.set_PWM_frequency(pins[i],FREQ )
レンジ幅の設定pi.set_PWM_range(pins[i],RANGE)
出力 pi.set_PWM_dutycycle(pins[i], 0)
0から255まで32ステップで実行
for r in range(0,255,32):
#!/usr/bin/env python3
import pigpio
import time
pi = pigpio.pi()
pins = {'Red':18, 'Green':27, 'Blue':22}
FREQ = 2000# 周波数
RANGE = 256# レンジ
#初期処理 出力、HIGH ,周波数とレンジをセット
def setup():
for i in pins:
pi.set_mode(pins[i], pigpio.OUTPUT)
pi.write( pins[i], pigpio.HIGH)
pi.set_PWM_frequency(pins[i],FREQ )
pi.set_PWM_range(pins[i],RANGE)
#サイクル0をセット
pi.set_PWM_dutycycle(pins[i], 0)
#終了処理
def destroy():
# サイクル0をセット ストップ
for i in pins:
pi.set_PWM_dutycycle(pins[i], 0)
pi.stop()
# If run this script directly, do:
if __name__ == '__main__':
setup() #初期処理
while True:
try:
#0から255まで32ステップで実行
for r in range(0,255,32):
pi.set_PWM_dutycycle(pins['Red'], r)
for g in range(0,255,32):
pi.set_PWM_dutycycle(pins['Green'], g)
for b in range(0,255,32):
pi.set_PWM_dutycycle(pins['Blue'], b)
time.sleep(0.3)
except KeyboardInterrupt:
destroy()
終了後にエラーが発生する
tryの場所の問題で修正後のソースは
# If run this script directly, do:
if __name__ == '__main__':
setup() #初期処理
try:
while True:
#0から255まで32ステップで実行
for r in range(0,255,32):
pi.set_PWM_dutycycle(pins['Red'], r)
for g in range(0,255,32):
pi.set_PWM_dutycycle(pins['Green'], g)
for b in range(0,255,32):
pi.set_PWM_dutycycle(pins['Blue'], b)
time.sleep(0.3)
except KeyboardInterrupt:
destroy()