打印

【银杏科技ARM+FPGA双核心应用】MicroPython系列八:PWM呼吸灯

[复制链接]
510|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 如意不如意 于 2020-7-6 09:59 编辑

一、实验目的
使用micropython 控制PWM实现呼吸灯。

二、实验设备及平台
  • iCore3双核心板点击购买
  • Micro USB线
  • 电脑

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



四、实验步骤
  • 用数据线将iCore3的USB-OTG口与电脑相连;
  • 打开PYBFLASH磁盘,将代码包中的main.py文件替换到PYBFLASH的main.py;
  • 弹出磁盘,将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)
代码包.zip (903 Bytes)

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

66

帖子

0

粉丝