树莓派通过软件实现GPIO的pwm(PiSoftPwm)
本帖最后由 ukonline2000 于 2013-1-21 13:06 编辑树莓派的GPIO只有一路硬件PWM,但是新版的树莓派又把这个管脚替换了,导致就不再支持硬件的pwm了,所以考虑用软件来实现pwm,也就是softpwm,程序是用老外的python改的,这样就能比较方便那些需要用树莓派控制步进电机或者需要pwm的朋友,希望能对大家有所帮助!!!
http://player.youku.com/player.php/sid/XNTA0NzgzMzI4/v.swf
http://player.youku.com/player.php/sid/XNTA0NzgzOTMy/v.swf
使用装备
1.树莓派(512M版本)
2.树莓派全功能扩展板 (详见https://www.cirmall.com/bbs/forum.php?mod=viewthread&tid=1372&page=1&extra=#pid4695)
3.diy过的流水灯
操作步骤:1.安装RPI.GPIO库,参考帖子 https://www.cirmall.com/bbs/forum.php?mod=viewthread&tid=1815
2.下载PiSoftPwm软件,地址
3.拷贝到树莓派中,并运行例程 python example.py
备注:例程是针对512M版本的树莓派,256M版本的树莓派,请打开example.py文件,找到这两行third = PiSoftPwm(0.01, 100, 27, GPIO.BCM)#for raspberry pi rev 2.0改为#third = PiSoftPwm(0.01, 100, 27, GPIO.BCM)#for raspberry pi rev 2.0
third = PiSoftPwm(0.01, 100, 21, GPIO.BCM)#for raspberry pi rev 1.0例程中有部分函数使用的介绍,修改时可以参考
非常好,万分感谢! 没测这个,不知道版主所说的是那个版本的树莓派, 好像新版的 B+的pwm 只在pin 12 上有。新人初来乍到, 不太懂这些,还请赐教 最后那一堆我搞不懂,反正我也只测试一个端口,将代码改了一下,简单点容易懂点 :)
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import signal
from PiSoftPwm import *
def endProcess(signalnum = None, handler = None):
first.stop()
GPIO.cleanup()
exit(0)
signal.signal(signal.***TERM, endProcess)
signal.signal(signal.***INT, endProcess)
first = PiSoftPwm(0.01, 100, 17, GPIO.BCM)
slices = 0
flag = -1
first.start(0)
while True:
first.changeNbSlicesOn(slices)
time.sleep(0.01)
if slices > 100 or slices < 1:
flag=-flag
slices+=flag wyyyh 发表于 2013-1-21 21:36 static/image/common/back.gif
测试通过,Good!
感谢测试哟,呵呵:P 测试通过,Good! flashsoft 发表于 2013-1-21 13:48 static/image/common/back.gif
U大文章必须先顶后收藏,再看
:lol你太客气啦 先顶后看。。。。 U大文章必须先顶后收藏,再看 大仙的,必须顶:loveliness:
页:
[1]
2