本节课主要学习microPython控制PWM输出的功能。
本次实验的参考代码路径为:CanMV\03-Hardware\pwm.py
模块的出厂固件已经集成PWM输出模块,如果下载过其他固件,请烧录回出厂固件再进行实验。
from machine import Timer, PWM
import time
xxxxxxxxxx
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
xxxxxxxxxx
pwm = machine.PWM(tim, freq, duty, pin, enable=True)
tim
: 每个PWM依赖一个定时器来产生波形, 所以这里需要传一个定时器对象,这个定时器对象必须初始化时必须指定定时器 ID 和通道号freq
: PWM 波形频率duty
: PWM 占空比, 指高电平占整个周期的百分比,取值:[0,100][pin]
: PWM 输出引脚。 实际物理引脚IO编号。enable
: 是否立即开始产生波形,默认位True
,及对象生成后立即开始在指定的引脚上产生 PWM 波形xduty=0
add = True
while True:
if add:
duty += 10
else:
duty -= 10
if duty > 100:
duty = 100
add = False
elif duty < 0:
duty = 0
add = True
time.sleep(0.05)
pwm.duty(duty)
xxxxxxxxxx
# RED=27, GREEN=26, BLUE=29
LED_PIN = 26
将K210模块通过microUSB数据线连接到电脑上,CanMV IDE点击连接按钮,连接完成后点击运行按钮,运行例程代码。也可以将代码作为main.py下载到K210模块上运行。
可以看到RGB灯亮绿色,并且持续从最暗到最亮,再从最亮到最暗调节,呈现呼吸灯效果。
使用CanMV IDE,搭配出厂固件写好的MicroPython语法,使得控制PWM输出非常轻松,通过简单配置定时器和PWM,就可以展示呼吸灯效果。PWM输出依赖于定时器,目前K210总共有3个定时器,每个定时器有4个通道,所以最多可以输出12个PWM信号。PWM占空比为输出高电平时间与周期的比值。