MH是适用于WS2812等数字LED条的初学者友好型SPI驱动器。照明项目从未如此轻松!
硬件组件:
Arduino Mega 2560 × 1个
Atnel开发板1.05a× 1个
STMicroelectronics STM32 Nucleo-64板× 1个
Raspberry Pi 4 B型 1个
我使用WS2812,WS2815或SK6812等数字LED已有很长时间,我通常将它们称为Magic LED。
我测试了许多基于Magic LED(甚至是RGBW类型)的带,环和显示器(甚至是我自己的)。我使用了Arduino,Nucleo(带有STM),Raspberry Pi和我自己的带有AVR微控制器的主板。
无论使用哪种平台,编写程序来控制魔术LED都是困难的(由于需要NZR协议软件),除非您正在使用易于使用的现成库,但是就代码使用而言,中断仍然不是完全最佳的,响应或内存利用率,并且只能在特定平台上使用(将它们从Raspberry移植到AVR微控制器是不可能的)。
由于我经常使用各种平台,因此我需要程序代码与Arduino,Raspberry Pi,ARM / STM(Nucleo)或AVR尽可能兼容-特别是在灯光效果方面。
我已经在youtube频道上工作了很长时间,并且准备了一份以上的指南,以C语言为AVR微控制器编程数字二极管(但到目前为止仅在波兰语中)。我经常与那些为魔术LED编程而苦苦挣扎的初学者接触。当然,根据平台的不同,有些人会为他们的一次性项目选择现成的库。但是,许多人正在寻找其他解决方案或尝试学习编程的秘密,而我就是其中之一。
我决定准备一个模块,该模块将使用NZR协议为用户完成肮脏的工作。与SPI一样,将用作SPI到NZR转换器的模块可以轻松地在任何平台上使用。下面的屏幕截图显示了Magic Hercules模块中SPI信号到NZR协议的转换。
SPI到NZR的转换:
将数字LED连接到不同的系统时,应该记住不同微控制器的适当电压容限。ARM微控制器的大多数I / O引脚均以+3.3 V标准工作,而AVR微控制器则以TTL标准工作。因此,Magic Hercules模块的输入引脚的公差为+3.3 V,因此可以安全地连接到例如Raspberry P或+3.3 V供电的任何基于ARM的微控制器。
如前所述,我经常使用不同类型的数字LED。根据制造商的不同,LED中的各个颜色可以位于不同的位置,例如RGB,BGR,GRB,RGBW,GRBW等。制造商的文档中提到RGB序列并不少见,但实际上看起来有所不同。我已经为Hercules模块配备了颜色顺序测试,因此快速弄清楚如何为正确的颜色顺序编写程序没有问题。测试仪的几个附加功能使您可以快速检查数字LED灯条是否全部正常工作,以及该灯条上每个LED的所有颜色(最多1024个LED!)是否正常工作(无死像素)。而这一切都无需连接微控制器和编写任何程序。
色阶测试:
我不认为使用简单且通用的SPI协议来控制数字LED还可以,该协议可以在任何平台或微控制器系列上运行。
当然,有许多控制数字LED的方法,有些是最优的,而有些则不是最优的。Magic Hercules模块是另一个选择,对我来说非常实用。
我认为有人可能喜欢这种不寻常的解决方案。我最近在众筹平台kickstarter上起飞,在那里我通过几个视频对Magic Hercules模块进行了更广泛的描述,包括在Arduino,Nucleo(STM),Raspberry Pi和AVR和PIC上使用它的简便性。微控制器。
我用C语言编写了一个程序-一个简单的stargate效果,它基于表操作和主循环中缓冲区的顺序发送。多亏了Magic Hercules模块,我能够轻松地将源代码转移到其他语言和平台上-检查源代码部分(适用于Raspberry Pi或Arduino的Python)。
各种平台的MH测试:Arduino 2560,STM32 Nucleo,ATB 1.05a(AVR):
我认为MH可以是一个非常适合初学者的模块,无论它们使用的平台和语言如何。了解众所周知的SPI协议就足够了,并且开始检查数字LED灯条是否完全正常工作以及它具有什么颜色顺序的可能性仅仅是一个加号。
原理图:
DIP8封装板上的Magic Hercules模块
MH模块是一块具有标准DIP8封装尺寸的电路板。
MH模块作为原理图元素
Magic Hercules模块既可以在面包板上使用,也可以在自己的PCB中使用。SPI总线的引脚6和7耐压+3.3V。引脚1用于定义测试的魔术LED灯带的类型-RGB(3字节)或RGBW(4字节)。引脚5是连接到数字LED输入的输出。+5 V电源应正确连接到引脚4和8。
责任编辑:pj
全部0条评论
快来发表一下你的评论吧 !