RPi.GPIO の PWM
デジタル出力の電圧は3.3Vと一定です。
そのためLEDの明るさも一定です。
非常に短い周期で点灯と消灯を繰り返すことで、LEDに明暗をつけることができます。
こういう方式を PWM (Pulse Width Modulation) パルス幅変調と言います。
人間の眼は、0.3秒周期では点灯と消灯を認識できますが、0.05秒周期では点灯と消灯を認識できず一定の明るさで点灯しているように感じます。
例えば、パソコンの動画は、1秒間に30回の画像を表示することで、あたかも動いているように見せています。
RPi.GPIO には PWM という関数が用意されています。
- PWM インスタンス を作成する
channel は GPIO 番号です。
freq はHz単位の周波数です
p = GPIO.PWM(channel, freq)
- PWMを開始する
dc は Duty Cycle デューティ比 です
( 0.0 < = dc < = 100.0 )
p.start(dc)
- 周波数を変更する
p.ChangeFrequency(freq)
- デューティ比を変更する
p.ChangeDutyCycle(dc)
- PWMを停止する
p.stop()