注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

dcexpert的个人空间 http://home.eeworld.com.cn/space-uid-573537.html [收藏] [复制] [分享] [RSS]

日志

【ESP32学习】用定时器实现呼吸灯

已有 107 次阅读2018-7-31 09:26 |个人分类:MicroPython

在PWM中,我们利用延时的方法实现了一个呼吸灯。但是使用延时不是一个好的方式,这会让其它任务无法执行,因此我们利用前面介绍过的定时器,使用定时器实现呼吸灯。

先定义一个LED_set函数,每调用一次函数就改变一次LED的亮度,然后将它指定为定时器的回调函数,就可以方便的实现呼吸灯了。改变dp和定时器周期,可以调整呼吸灯的速度。

  1. from machine import Pin, Timer, PWM

  2. LED = PWM(Pin(21))

  3. p = 0
  4. dp = 8
  5. def LED_set(t):
  6.     global p, dp
  7.     LED.duty(p)
  8.     p += dp
  9.     if p == 0 or p > 1023 - dp:
  10.         dp = -dp

  11. tm =Timer(1)
  12. tm.init(period = 10, mode = Timer.PERIODIC, callback = LED_set)
复制代码





此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-10-22 02:50 , Processed in 0.015995 second(s), 10 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2018 http://bbs.eeworld.com.cn/

返回顶部