PWM のインスタンスをつくる:
p = GPIO.PWM(channel, frequency)
PWMを開始する:
p.start(dc) # ここで dc はデューティサイクル(通電率, duty cycle) (0.0 <= dc <= 100.0)
周波数を変更する:
p.ChangeFrequency(freq) # ここで freq は新しい周波数 (単位は Hz)
デューティサイクルの変更:
p.ChangeDutyCycle(dc) # ここで 0.0 <= dc <= 100.0
PWMの停止:
p.stop()
変数 p がスコープ外になったときもPWMは停止することに注意。
LEDを2秒に1回点滅させる例:
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.OUT) p = GPIO.PWM(12, 0.5) p.start(1) input('停止するにはEnterキーを押す:') # Python 2の raw_input を用いている p.stop() GPIO.cleanup()
LEDを明るく/暗くする例:
import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.OUT) p = GPIO.PWM(12, 50) # channel=12 frequency=50Hz p.start(0) try: while 1: for dc in range(0, 101, 5): p.ChangeDutyCycle(dc) time.sleep(0.1) for dc in range(100, -1, -5): p.ChangeDutyCycle(dc) time.sleep(0.1) except KeyboardInterrupt: pass p.stop() GPIO.cleanup()