本帖最后由 如意不如意 于 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)
|