PWM(パルス幅変調)

Anonymous Ben Croston

RPi.GPIOの PWMの用法

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

Related

Wiki: Examples

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks