PWM制御でLEDの輝度を変化させるプログラムを作成しました。
#本プログラムはラズパイのターミナル上で実行してください。
#統合開発環境だとエラーになります。
import pigpio
import time
import readchar
gpio_pin0 = 18 #GPIO18でPWMを動かす
x=0 #LEDの初期輝度
pi = pigpio.pi()
pi.set_mode(gpio_pin0, pigpio.OUTPUT)
while 1:
#100Hz,x*100000のところがDuty比です。これでx%になります。
pi.hardware_PWM(gpio_pin0, 100, x*100000)
#キーボードから入力を読み取ります。
kb = readchar.readchar()
print(kb)
#uが入力されたら輝度を一段階上げます。
if kb == 'u':
x=x+1
print("brightness="+str(x))
#dが入力されたら輝度を一段階下げます。
elif kb== 'd':
x=x-1
#xがマイナスになるとエラーでプログラムが止まります。。張り付きにする処理が必要です。
print("brightness="+str(x))
#qが入力されたらプログラムを終了します。
elif kb == 'q':
pi.set_mode(gpio_pin0, pigpio.INPUT)
pi.stop()
print("")
break
↓動作させているところ
pic.twitter.com/1okaUUdWLc March 29, 2020
##参考サイト
・pigpioによるPWM制御
https://qiita.com/s417-lama/items/0ef64a7af3fcf6a56cc5
・readcharの使い方
https://teratail.com/questions/100708
input()だと入力のあとenterを押さないと入力が反映されません。
readcharを使うとenterなしで連続入力ができます。