跳转到主要内容
editor 提交于

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

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

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

第一个概念:周期(period)

<center><img src="http://intel.eetrend.com/files/2016-05/wen_zhang_/100001561-3418-1.jpg&…; alt=""></center>

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

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

<center><img src="http://intel.eetrend.com/files/2016-05/wen_zhang_/100001561-3419-2.jpg&…; alt=""></center>

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

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

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脚的点击应该奔腾起来了啊!

文章来源:
<a href="http://www.dfrobot.com.cn/community/forum.php?mod=viewthread&amp;tid=12…创客空间