目录

银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-06-15 gingko 初次建立

例程八:【micropython】PWM呼吸灯

一、实验目的

使用micropython 控制PWM实现呼吸灯。

二、实验设备及平台

  1. iCore3双核心板点击购买
  2. Micro USB线
  3. 电脑

三、实验原理

开发板STM32的定时器有PWM功能,iCore3的三个LED都连接在定时器8,可以通过定时器的PWM输出控制LED的亮度,从而实现呼吸灯的功能。驱动示意图如下图所示:

四、实验步骤

  1. 用数据线将iCore3的USB-OTG口与电脑相连;
  2. 打开PYBFLASH磁盘,将代码包中的main.py文件替换到PYBFLASH的main.py;
  3. 弹出磁盘,将iCore3重新上电,代码运行;

五、实验现象

iCore3双核心板上三色LED灯轮流从暗到亮,从亮到暗。

六、实验程序

# -*- coding: utf-8-*-
# main.py -- put your code here!
from pyb import Pin, Timer  #导入
import pyb
 
#创建定时器8(I5,I6,I7都使用定时器8),10ms中断一次
tm8 = Timer(8, freq=100)
#创建LED对象,指定Timer的通道,并设定PWM模式、关联的Pin
LEDR=tm8.channel(1, Timer.PWM, pin=Pin.cpu.I5)
LEDG=tm8.channel(2, Timer.PWM, pin=Pin.cpu.I6)
LEDB=tm8.channel(3, Timer.PWM, pin=Pin.cpu.I7)
LED = [LEDR, LEDG, LEDB]  #创建LED列表
 
while True:
    for led in LED:   #三色LED循环
        for i in range(100,0,-1):      #渐亮
            led.pulse_width_percent(i) #设定脉冲宽度占空比
            pyb.delay(10)
 
        for i in range(101):           #渐灭
            led.pulse_width_percent(i) #设定脉冲宽度占空比
            pyb.delay(10)