USB NeoPixel装饰灯的制作

电子说

1.3w人已加入

描述

步骤1:接线

LED灯条

LED灯条

大多数WS2812板带三线连接器。我卸下了连接器的塑料外壳,然后将电线直接连接到插针上(它们非常合适)。白色是GND,红色是+ 5V,绿色是数据输入。

大多数LED灯带的两端都有额外的电源线。这些导线通常是裸露的,因此请确保将其隔离(否则可能会导致其意外短路)。

请注意,LED需要很多功率。如果有30个LED灯带,则可以直接从任何PC或USB电源以全亮度运行它(它将消耗小于500mA的电流)。大约100个LED在低亮度下也能正常工作,但是如果您想要更多,最好使用单独的电源。对于长条,建议从两端供电,对于长条,建议连接额外的电源线,每个100-200个LED。

WS2812串行接收彩色数据,因此您实际上可以控制任何数量的仅具有一个数据引脚的LED。您可以使用任何数字输出引脚(不要忘记在代码中输入正确的数字)。

一旦连接了插排,就可以进入编码部分。

步骤2:编码

LED灯条

该代码在我的github存储库中可用–您可以将代码下载为单个文件此处:https://goo.gl/abFfxz

要快速入门,请找到 #define PIN 0 ,并将0替换为与NeoPixel的数据输入连接的引脚数

您可能还希望调整其他设置,如代码注释中所述:

#define NUMPIXELS 30 –设置数字像素控制

#define RNDPIN 2 –设置为任何具有模拟输入的引脚(仅用于初始化随机数生成器一次)

#define BRIGHTNESS 64 –最大LED亮度(1到255)。请注意,高亮度需要很多功率,因此从低值开始

#define FOCUS 65 –色斑的形状(增加以获得狭窄的斑点,减少以获得较宽的斑点)

#define DELAY 4000 –设置动画的速度:降低以加快速度,增加以减慢速度(实际上并不是延迟)

#define DEBUG 0 –设置为1以显示FPS速率

使用常规方法上传代码。尽情享受吧!

步骤3:故障排除

如果根本看不到任何东西,请检查连接,极性和数据引脚。

如果某些LED闪烁或卡住–可能是电源问题。尝试降低 #define BRIGHTNESS 设置,并确保您具有足够的功能。

如果您发现代码中有任何错误或想要改进–欢迎您!

第4步:如何工作

LED灯条

LED灯条

对于此项目,我们有三个“色斑”,它们可以向后跑沿着地带以不同的速度前进。当斑点彼此相遇时,红色,绿色和蓝色的叠加会产生各种颜色。我们将每个光斑的位置和速度保持在变量中,我们需要为每个重绘上的每个LED重新计算颜色。虽然我们每秒可以做很多次,但动画看起来会很平滑。

像素的每个颜色分量都与 exp(-d * d)成比例,其中 d 是像素与相应颜色的光点中心之间的距离。换句话说,像素颜色代表正态分布(高斯分布),与在图形编辑器中使用“高斯模糊”滤镜完全相同。

Arduino库中包含的指数函数看起来非常慢,因此我仅使用两个乘法和一个除法进行了近似: 1.0/(1.0-(0.634-1.344 * x)* x)。请注意,此近似值仅适用于 x 《0 。

我们计算循环中每个像素的颜色,并通过调用 strip.setPixelColor将其发送到内存缓冲区。 ()即可。当我们遍历每个像素时,我们调用 strip.show(),NeoPixel库将所有数据同步发送到指定的引脚-所有像素,一个像素一个像素,一个24位彩色数据。 First NeoPixel读取前24位数据,将其本地存储在寄存器中,然后将所有其他数据传递到下一个像素。第二个“像素”获取其数据,并将剩余的数据发送到下一个像素,依此类推,直到每个像素获取其数据。您可以安全地发送少于条带中的LED数量的数据-只有第一个 NUMPIXELS 才可以工作。

该代码已被详细记录(希望!),请询问问题在这里!

第5步:调整

当然,有很多方法可以修改此想法并创建其他项目。

例如,我为我的一个项目制作了一个金属环,并将其中的一条胶粘到其中。现在,这是一个不错的装饰灯,您可以将其放在墙壁或天花板上。在窗玻璃附近放置一个条带可以产生很好的反射效果(如您在照片上看到的那样)。

在技术方面,通过在定点计算中重写数学运算可以大大改善代码。我正在使用float来保持事物的描述性和易于理解,但这非常慢。我可能稍后会发布优化版本,或者,如果有人愿意,欢迎您!

我的另一个想法是使用麦克风调整动画声音。可能需要比ATtiny更强大的功能。

最后,您可以将Digispark插入任何移动电源,并在便携式模式下欣赏您的小工具。将条带粘在手提包,衣服或自行车上,并用作独特的个人配件。)

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分