本站改版新增arduino频道

Micropython
Arduino

micropython esp32 呼吸灯


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

代码:

#硬件平台: 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灯呈现呼吸特效。

Snipaste_2022-07-08_22-49-19.jpg


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号

执行时间: 0.0095682144165039 seconds