我如何手动将数据(没有任何预制库)发送到带有 arduino 的 ws2801 led 灯条?
我不是要求有人为我编写代码,只是朝着正确的方向推动。
我有一个 arduino 莱昂纳多
您使用 SPI,它是来自 Arduino 的 3 条数据线。
看看这个教程: Tronix SPI 教程
然后是 Arduino 库/教程: Arduino SPI 教程/库
现在检查数据表,看看你能从中学到什么: WS2801 数据表
网上有几个关于使用 Arduino 的视频教程,一旦你了解 SPI 就可以查看它们,它真的很简单。:
WS2801 确实使用类似于移位寄存器的 SPI 类型接口,您推送 3 个字节的数据以填充第一个芯片,然后继续推送更多字节以进行溢出。
数据表显示两条线,时钟和数据;但您也可以将 POL(输出极性反转)连接到 PWM 输出以获得强度,因此是 3 线接口。
查看Adafruit-WS2801-Library以获得更多指导。
这是几年后的事了,但我一直在研究同一个主题,并找到了一些可以帮助下一位读者的相关信息。
Josh Levine 的这个项目使用 7 个 WS2812B 条来显示滚动文本。这些条平行连接到单个 Arduino 板,并且它的代码不使用任何预构建的库。
在这里查看代码。主要是WS2812b的时序非常具体,代码使用ASM来获取时序正确。有关 WS2812 时序的更多信息请点击此处。
补充阅读:如果您对 LED 灯条如何并联工作感兴趣,Josh 还为此撰写了一篇文章,解释了他的位处理技术,您可以在此处阅读。