如何创建一个动态的LED灯光秀
扫描二维码
随时随地手机看文章
在LED亮度控制的基础上,我们将使用PWM,平滑过渡和淡出来创建一个动态灯光秀,使其在视觉上引人入胜!
在我们之前的LED亮度控制项目的基础上,我们现在将进一步创建一个动态的LED灯光秀。使用PWM和亮度的定时变化,我们将创建平滑的过渡,淡出和效果,使LED在视觉上引人入胜。让我们让LED焕发生机吧!
我们开始吧
•如果你还没有完成LED亮度教程,我们强烈建议你在继续之前先复习一下,建立一个坚实的基础。
•设置环境-如果您还没有在Arduino®上添加水星板,现在是这样做的好时机。
•插入USB电缆水星板和连接它您的笔记本电脑。
•请参阅下面的代码
•当Arduino终端显示“Connecting…”时,长按FLASH按钮启动上传过程。
这里到底发生了什么?
速成班:Arduino®环境中的For-loop和delay()
for循环是Arduino中用于多次执行代码块的基本控制结构。
delay(ms)函数将程序暂停一段指定时间(以毫秒为单位)。
回到项目上来…
我们将实现的LED例程遵循以下顺序:LED OFF→LED ON→LED OFF→LED ON→Slow Fade Out。这种图案将创造一个动态的效果,逐渐过渡到一个平滑的衰减为一个视觉上吸引人的LED秀。
缓慢淡出
循环开始时亮度设置为250,在之前的状态下,LED是开的。只要亮度大于等于0,循环就会继续。在每次迭代中,亮度降低1(从250→249→248…添加2毫秒的延迟以创建平滑的衰落效果,而不是瞬间变化。
***声明***
以上提到的一切大体上都是正确的;然而,在使用ESP-12F模块的水星板上,ESP-12F模块上的默认内置LED以反向配置连接。这意味着当GPIO 2 (D7)设置为HIGH时,LED关闭,当GPIO 2设置为LOW时,LED打开。
因此,PWM的行为也被反转。当PWM值设置为0时,LED以全亮度发光,当PWM值设置为255时,LED完全关闭。否则,概念理解保持不变。
为了解释这种倒置的LED行为,我们需要在代码中做一个小的调整,如下所示:
这里,“亮度”表示用户输入所需的LED亮度。
本文编译自hackster.io