0
0

More than 3 years have passed since last update.

PWMで輝度制御(キーボード入力でコントロール)

Last updated at Posted at 2020-03-30

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

↓動作させているところ

参考サイト

・pigpioによるPWM制御
https://qiita.com/s417-lama/items/0ef64a7af3fcf6a56cc5

・readcharの使い方
https://teratail.com/questions/100708
input()だと入力のあとenterを押さないと入力が反映されません。
readcharを使うとenterなしで連続入力ができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0