Raspberry PiのpythonでPWMでLED点灯(GPIO)
- 2017/12/12
- 00:54
Raspberry PiのpythonでPWMでLED点灯(GPIO)
こんにちはRoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。
前回はRaspberry Piでpythonを使ってボタンを押してLチカ(LED点灯)しました。
前回の記事はこちらを参照してください
Raspberry Piでpythonを使う基本的な方法はこちらを参照してください。

今回はPWMを使ってLEDを点灯させたと思います。
PWMについてはこちらを参照してください。
結線図
結線図は前回と同じです。

Cで書いた記事はこちらを参照してください。
スクリプト
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT) #GPIO4
p4 = GPIO.PWM(4, 60) #Setting GPIO4 Frequency at 60Hz
p4.start(0) #Start PWM at Duty 0
for x in range(10):
for pw in range(0, 100, 10):
p4.ChangeDutyCycle(pw) #Changing Duty
time.sleep(0.05)
for pw in range(100, 0, -10):
p4.ChangeDutyCycle(pw) #Changing Duty
time.sleep(0.05)
p4.stop() #Stop PWM
GPIO.cleanup()

説明
今回はちょっとだけややこしいです。
まずp4(適当な名前)をPWMとして設定します。
GPIO.PWM(4,60)
GPIO4を60HzのPWMに設定するという意味になります。
次にp4のPWMをスタートさせます。
p4.start(0)
デューティー0でスタート
for文で変数pwを0から100まで10ごとに進めます。
for pw in range(0, 100, 10):
このループの中でp4のデューティーをpwに変更します。
p4.ChangeDutyCycle(pw)
pwが100まで行ったら逆に-10ごと0まで戻します。
最後にPWMを停止させます。
p4.stop() #Stop PWM
結果
PWMでじわじわLEDが点灯して、じわじわ消灯します。
狙い通りに出来ました。
PWMに関して言えば、CでWiringPiを使った方が簡単な気がします。
それでは今回はこの辺で失礼します!ありがとうございました。
スポンサードリンク