記事一覧

Raspberry PiのpythonでPWMでLED点灯(GPIO)

Raspberry PiのpythonでPWMでLED点灯(GPIO)



こんにちはRoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。

前回はRaspberry Piでpythonを使ってボタンを押してLチカ(LED点灯)しました。
前回の記事はこちらを参照してください

Raspberry Piでpythonを使う基本的な方法はこちらを参照してください。

pythongpio00.png

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

結線図
結線図は前回と同じです。

WiringPi14.png

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()


pythongpio02.png

説明
今回はちょっとだけややこしいです。

まず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を使った方が簡単な気がします。

それでは今回はこの辺で失礼します!ありがとうございました。

コメント

コメントの投稿

非公開コメント

プロフィール

RoboTakao

Author:RoboTakao
みなさんご訪問ありがとうございます。ロボット作りたいけどお小遣いそんなにないし、簡単でローコストでロボットを作るための私のプロジェクトを紹介します。

ウェブサイトもありますのでそちらもよろしくお願いします。
http://robotakao.jp/