第1步:分析蜡烛
用LED制作逼真的蜡烛的第一步是知道真正的蜡烛是什么样的。这个问题有很多种方法,有些方法比其他方法更好。我们可以观看蜡烛并尝试实时识别闪烁模式,但如果我们改用技术来帮助我们,那就容易多了。我使用连接到软件的相机创建了光照水平图。
首先,蜡烛闪烁的数量并不总是相同的。当频率保持不变时,幅度会发生变化。其次,如果你看一般模式,你会看到你可以将闪烁分成不同的部分。每个部分长约一到五秒。最后,蜡烛似乎遵循每个部分的一般向上或向下曲线。
现在我们知道蜡烛火焰应该如何看,我们可以开始构建。
步骤2:接线
将LED连接到Arduino的最简单方法是但是直接连接会带来一些问题。 LED只能处理一定的安培数,通常为20 mA; Arduinos将输出大约55毫安。
为了解决这个问题,每个LED应该有一个电阻阻止一些电流。逻辑结论是通过电阻器发送每个输出。虽然这有效,但需要很多电阻才能完成这项工作。
连接LED的最佳方法是通过电阻发送接地,从而允许每个LED共用同一电阻,同时保持输出线分离。
显示时这样,您将需要确保LED畅通无阻且外观良好。要做到这一点,最好使用短线并相互放置每种颜色。
步骤3:代码
我在本教程中假设了Arduino编程的基本知识,因此我将跳过编码过程的某些部分。即使您不知道如何编码,Candle.ino文件也可以正常工作并进行全面评论。
现在我们连接了LED,我们可以编码Arduino以匹配蜡烛。您可能还记得,我们对蜡烛的分析告诉我们,我们的LED应该:
每1-5秒更换一次模式
并不总是有相同数量的闪烁
每个部分的平均变化不变
第一步是允许蜡烛改变模式。使用for循环最简单的方法。循环的每次运行都是一个帧,它循环的次数控制每个部分的长度。每次循环结束时,都会启动一个新循环。伪代码将如下所示:
loop (forever) {
loop (section length) number of times {
flicker LEDs
wait (frame length)
}
}
对于闪烁量,我们应该为两个变量分配最大值和最小值,并在它们之间选择一个随机值。这将允许我们改变每个LED的平均亮度和闪烁范围。在每个部分期间,参数将被更改。我们的新伪代码:
loop (forever) {
set LED range
loop (section length) number of times {
flicker LEDs with range as parameters
wait (frame length)
}
}
最后一步是让每个部分的平均亮度发生变化。要做到这一点,我们需要首先用变量存储当前亮度。我们还应该创建一个变量来决定最终亮度应该是多少。当我们进入for循环时,我们想要使亮度缓慢衰减,因此我们可以编写一些代码,以匹配未来/当前亮度与比率帧/长度的比率。伪代码:
loop (forever) {
set LED range
store current brightness
set future brightness
loop (section length) number of times {
fade brightness
flicker LEDs with range and brightness as parameters
wait (frame length)
}
}
现在我们的代码完成了,让我们展示我们的工作!
步骤4:显示
最后一步是显示您的手工作品。你在显示它的地方很有创意,但是一些一般规则仍然适用。
最明显的是,你要确保你的Arduino有稳定的电源。长的USB线应该可以用于此,但是你应该确保线不会被击倒或绊倒。
其次,Arduino应该处于良好的环境中。确保你的Arduino不会摔倒,如果你点亮了一个千斤顶,请小心南瓜内的水分。
最后,为了获得良好的蜡烛外观,你应该有良好的光扩散。有很多选择,但我在灯笼面前放了一块布而不是购买扩散纸。
-
led
+关注
关注
242文章
23203浏览量
659761 -
Arduino
+关注
关注
188文章
6468浏览量
186838
发布评论请先 登录
相关推荐
评论