凌风清羽 发表于 2016-2-3 21:35:14

【树莓派教程】——Python使用PWM

1.树莓派引脚对照表
https://mc.dfrobot.com.cn/data/attachment/forum/201601/25/200726z38n8n848683kf4f.jpg
2.PWM控制呼吸灯
脉宽调制(PWM)是指用微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方法。在树莓派上,可以通过对GPIO的编程来实现PWM。创建一个 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()
注意,如果实例中的变量“p”超出范围,也会导致 PWM 停止。以下为使 LED 每两秒钟闪烁一次的示例:import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)

p = GPIO.PWM(12, 0.5)
p.start(1)
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)# 通道为 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:
    pass
p.stop()
GPIO.cleanup()



大连林海 发表于 2016-2-3 22:57:55

沙发 做一个

hnyzcj 发表于 2016-2-4 08:49:15

我的树莓估计年后才能到,要不现在就跟你后面做了。

孙毅 发表于 2016-2-4 09:42:33

哈哈哈,已经有人准备跟着你玩树莓派了啊。。。哈哈哈

孙毅 发表于 2016-2-4 09:42:59

hnyzcj 发表于 2016-2-4 08:49
我的树莓估计年后才能到,要不现在就跟你后面做了。

首先是得先学会 vim !!!

hnyzcj 发表于 2016-2-4 09:59:59

孙毅 发表于 2016-2-4 09:42
首先是得先学会 vim !!!

O ,来我房间教我

孙毅 发表于 2016-2-4 10:28:52

hnyzcj 发表于 2016-2-4 09:59
O ,来我房间教我

啊 @凌风清羽 以后要主动去陈老师房间,“教”他

hnyzcj 发表于 2016-2-4 10:40:41

孙毅 发表于 2016-2-4 10:28
啊 @凌风清羽 以后要主动去陈老师房间,“教”他

大肾————————————————————————————

吹口琴的钢铁侠 发表于 2016-2-4 12:41:01

同时能有几个PWM
对CPU占用有多少
每个GPIO都可以操作吗

孙毅 发表于 2016-2-4 15:35:10

吹口琴的钢铁侠 发表于 2016-2-4 12:41
同时能有几个PWM
对CPU占用有多少
每个GPIO都可以操作吗

好问题,我也知道。。。。。等楼主

凌风清羽 发表于 2016-2-4 17:04:18

hnyzcj 发表于 2016-2-4 10:40
大肾————————————————————————————

陈老师带我飞~~~~~{:5_168:}

凌风清羽 发表于 2016-2-4 17:05:10

吹口琴的钢铁侠 发表于 2016-2-4 12:41
同时能有几个PWM
对CPU占用有多少
每个GPIO都可以操作吗

这个还有待研究一下,我试了两个GPIO都可以~~可能是巧合了,以前看过一篇资源竟然找不到了

凌风清羽 发表于 2016-2-4 17:17:55

孙毅 发表于 2016-2-4 10:28
啊 @凌风清羽 以后要主动去陈老师房间,“教”他

今天大家都在我这里炸啦~~{:5_165:}

hnyzcj 发表于 2016-2-4 18:40:57

凌风清羽 发表于 2016-2-4 17:17
今天大家都在我这里炸啦~~

哈哈,明天炸大肾

凌风清羽 发表于 2016-2-4 21:12:04

hnyzcj 发表于 2016-2-4 18:40
哈哈,明天炸大肾

炸了大肾买iPhone7{:5_168:}

孙毅 发表于 2016-2-4 23:58:51

凌风清羽 发表于 2016-2-4 21:12
炸了大肾买iPhone7

就是,炸的大肾,怎么买 肾7

iooops 发表于 2016-2-6 17:32:42

啊我的树莓派

ldsgrh 发表于 2017-12-1 18:32:41

备用学习

蛋脑花 发表于 2021-7-31 16:36:00

请问树莓派rpi.gpio库可以更改pwm的占空比范围吗?比如将0到100 提高到 0到1000的范围

蛋脑花 发表于 2021-7-31 16:43:37

蛋脑花 发表于 2021-7-31 16:36
请问树莓派rpi.gpio库可以更改pwm的占空比范围吗?比如将0到100 提高到 0到1000的范围 ...

只能通过提高PWM的控制频率来提高控制精度吗
页: [1]
查看完整版本: 【树莓派教程】——Python使用PWM