1 Star 0 Fork 12

豳草/upycraft_cn

forked from DFRobot/upycraft_cn 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
4.1.2 breatheLight.py.md 1.59 KB
一键复制 编辑 原始数据 按行查看 历史
gboldwang 提交于 2018-04-26 11:16 . first commit

呼吸灯

   利用具有输出PWM信号功能的I/O口,在固定的频率下,采用占空比的方式来实现LED亮度的变化。占空比为0,LED灯不亮,占空比为100%,则LED灯最亮。所以将占空比从0到100%,再从100%到0不断变化,就可以实现LED灯特效呼吸。

准备

硬件:

  • FireBeetle-ESP32 × 1

软件:

  • uPyCraft IDE

代码位置:

  • File → Examples → Basic → breathLight.py

实验步骤

下载运行 breathLight.py,其代码如下

#硬件平台: FireBeetle-ESP32
#实验效果:呈现呼吸灯效果。
#下面的信息显示,对于当前版本,breathLight是可用的。
# IO0  IO4  IO10 IO12~19  IO21~23 IO25~27
#IO2引脚与板载LED相连,不需要外接LED灯,其他引脚需要外接LED灯。

from machine import Pin,Timer,PWM
pwm = PWM(Pin(2),100) #创建PWM对象
polar = 0            
duty = 0             

def setLed(t):        #led灯从明到暗再到明变化
  global duty,polar
  if(polar == 0):
    duty+=16
    if(duty >= 1008):
      polar = 1
  else:
    duty -= 16
    if(duty <= 0):
      polar = 0
  pwm.duty(duty)      #设置2引脚输出的PWM的占空比(控制led灯的亮度)

tim = Timer(1)        #创建Timer对象
tim.init(period=10,mode=Timer.PERIODIC, callback=setLed) #不断实现呼吸灯功能,持续10毫秒

#捕获异常
try:                     
  while True:
    pass
except:                #关闭Timer和PWM
  tim.deinit()
  pwm.deinit()

实验效果

   ESP32板子上的LED灯呈现呼吸特效。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/meihaodianzi/upycraft_cn.git
git@gitee.com:meihaodianzi/upycraft_cn.git
meihaodianzi
upycraft_cn
upycraft_cn
master

搜索帮助

Cb406eda 1850385 E526c682 1850385