Ruspberry Pi – PWM

概要

Raspberry PiでPWM (Pulse Width Modulation)を使う基本方法を整理する。

  • GPIO.PWMメソッドで、使用するピンと周波数を設定
  • PWM.startメソッドの引数にデューティー比を指定して実行開始
  • PWM.ChangeDutyCycleメソッドの引数でデューティー比を指定して変更

回路

LED点滅と同じ構成で、アノード側の抵抗をGPIO13に、カソードをGNDに接続する。

コード

以下のコードでは、100HzのパルスでLEDを点灯させ、順次輝度を落としている。

要点は以下の通り。

  • 13行目で100HzのPWMをGPIO13に設定
  • 16行目でデューティー比100%でスタートし、2秒点灯
  • 20行目でデューティー比を50%に低減
  • 24行目でデューティー比を10%に低減

この結果、スクリプト実行後LEDが3段階で暗くなっていき、最後に消灯する。

スクリプトによる実装

スクラッチでスクリプトを以下のように書いても同様の動作をさせることができる。

要点は以下の通り。

  • frequencyにはLED点滅切替えの周波数をHzで指定し、その逆数=周期(秒)をtime_sliceに設定
  • デューティー比duty_ratioを指定し、点灯/点滅の時間をtime_sliceに乗じて算出・設定

たとえばfrequencyが100Hzの場合1サイクルは0.01sec。ここでデューティー比0.3とすると、点灯時間は0.003sec、消灯時間は0.007secとなり、LEDは暗めに発光する。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です