本程序最大可独立控制8路LED灯按照不同的脚本(最大亮度,闪烁时间)进行呼吸灯效果的显示。
并且按照非线性函数曲线输出,使得呼吸灯的效果更好,比单纯线性控制更为自然。
首先对多路PWM输出进行单独控制是非常消耗单片机资源的,特别是还要控制每一路信号都按照函数曲线进行显示。显然通过函数实时计算太过消耗MCU的资源,是根本行不通的。所以本程序是通过预先计算好的数值进行查表操作来实现COS曲线输出的。方法很简单,用EXCEL拉一个公式就都有了。
每一路都可以按照预先设定好的若干个执行脚本循环执行,只要让每一路的脚本执行时间不同,就可以做到无数种组合效果,目前代码中每个IO口设置了6个脚本,如果大家选用的芯片FLASH比较大的话,可以多设一些脚本,是非常适合大家DIY制作萤火虫瓶。
简单的用手头上的sct15f104e做了一个6路的萤火虫。
试验的时候不小心烧掉一个LED,所以实际只有5只了。
具体效果可以看下面的视频。
视频
firefly.zip
(2.23 KB, 下载次数: 30819)
|