小德

超级版主
  • 主题:17
  • 回复:42
  • 金钱:142
  • 积分:301
本帖最后由 蒜泥小德 于 2014-10-2 19:01 编辑

为了使用舵机研究了下树莓派PWM的使用,其实很简单只是RPi.GPIO的参考好少啊!坑!

创建 PWM 引脚模式:

p = GPIO.PWM(channel, frequency)

开始 PWM 输出:

p.start(dc)   #dc 是占空比 (0.0 <= dc <= 100.0)

改变频率:

p.ChangeFrequency(freq)   # 改变频率到 freq Hz

改变占空比:

p.ChangeDutyCycle(dc)  # 0.0 <= dc <= 100.0

停止 PWM:

p.stop()


一个2秒闪烁一次LED的例子:


import RPi.GPIO as GPIOGPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)
p = GPIO.PWM(12, 0.5)
p.start(1)
input('Press return to stop:')
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)  # 引脚=12 频率=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:
    passp.stop()GPIO.cleanup()