跳转到主要内容

Edison上程序开发——如何使用PWM

editor 提交于


在Edison上,PWM的使用跟Arduino相比,稍微复杂了一点点,但是如果掌握了其中“奥秘”就很简单了。

下面就来教大家这个“奥秘”:

最基本的用法呢,其实就只要理解两个概念。

第一个概念:周期(period)


这里个人认为周期多少都无妨,PWM印象中挺好的脉冲频率,这里5000微秒,或者使用period_ms(5) 5毫秒。

第二个概念:duty (占空比)


这里write的参数就是占空比,就是矩形波信号每个周期内高电平时间与一个周期(高低电平总时间)的比值。0.2的意思是,在一个周期内有 五分之一 的时间是高电平,剩下的时间是低电平。

好了,完全理解的这两个概念,下面可以实战了!

01 #!/usr/bin/python
02
03 import mraa
04 import time
05
06 PWM_PIN = 5
07 pwm = mraa.Pwm(PWM_PIN)
08
09 pwm.period_us(5000) # Set the period as 5000 us or 5ms
10
11 pwm.enable(True) # enable PWM
12 value = 0
13
14 delta = 0.05 # Used to manipulate duty cycle of the pulse
15
16 while 1:
17
18 if (value >= 1):
19 # Itensity at max, need to reduce the duty cycle, set -ve delta
20 value = 1
21 delta = -0.05
22 elif (value =0):
23 value = 0
24 # Intensity at lowest, set a +ve delta
25 delta = 0.05
26
27 pwm.write(value) # Set the duty cycle
28
29 value = value + delta
30
31 time.sleep(0.5)

如果一切顺利,那么接在第5个pin脚的点击应该奔腾起来了啊!

文章来源:
DF创客空间