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