37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零九:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S室内全彩8扫电子屏(HX-P6-16X32-A)
电源连接器
尽管 LED 是非常高效的光源,但在一个地方获得足够多的 LED,电流确实会增加。单个 32x16或32x32 RGB 矩阵,全倾斜运行(所有像素设置为白色),可能需要近 4 安培的电流!对于64x32矩阵,该数字翻倍。不过,平均而言,显示典型的图形和动画,这些面板将使用更少的… 2A电源通常足以用于单个 32x16 或 32x32 面板,或 4A 用于 64x32 面板。使用额定电流更大的更大电源(例如 10A 电源)没有害处,但切勿 使用电压更高的电源(使用 5V,周期)!在这些面板上,电源连接与数据连接是分开的。让我们从连接 5V 电源开始……
面板具有 Molex 式接头,只需插入随附的电源线,注意正确的极性。如果您的电源线在此电源线的另一端带有铲子,则可以将它们拧入 2.1 毫米接线端子适配器。效果很好!不要让暴露的连接器接触金属……你应该用热缩管或电工胶带覆盖它。
数据连接,这个接口是HUB75
其中LAT(闩锁)在本例中标记为 STB(频闪)。
单元板矩阵的工作原理
没有关于这些矩阵如何工作的“官方”文档,也没有公开的数据表或规格表,因此我们将尝试记录它们的工作原理。
首先要注意的是 16x32 矩阵中有 512 个 RGB LED。就像几乎所有的矩阵一样,你不能一次驱动所有 512. 一个原因是需要大量电流,另一个原因是拥有这么多引脚会非常昂贵。相反,矩阵被分成 8 个交错的部分/条。第一部分是第 1 行和第 9 行(32 x 2 RGB LED = 64 RGB LED),第二部分是第 2 行和第 10 行,依此类推,直到最后一部分是第 8 行和第 16 行。你可能会问,为什么这些线是这样配对的?让第一部分成为第 1 和第 2 行,然后是第 3 和第 4 行,直到第 15 和第 16 行不是更好吗?他们这样做的原因是让线条交错并在刷新时看起来更好,否则我们会更清楚地看到条纹。
所以,PCB上有12个LED驱动芯片。这些就像 74HC595,但它们有 16 个输出并且它们是恒定电流的。16 个输出 * 12 个芯片 = 192 个可同时控制的 LED,64 * 3(RG 和 B)= 192。所以现在设计结合在一起:您有 192 个输出可以一次控制一条线路,每个192 个 R、G 和 B LED 亮或灭。控制器(例如 FPGA 或微控制器)选择当前绘制的部分(使用 A、B 和 C 地址引脚 - 3 位可以有 8 个值)。一旦设置了地址,控制器就会输出 192 位数据(24 字节)并将其锁存。然后它增加地址并输出另外 192 位等,直到到达地址 #7,然后将地址设置回 #0。这种技术的唯一缺点是,尽管非常简单和快速,但它具有没有内置PWM 控制!控制器只能将 LED 设置为开或关。那么当你想要全彩时你会怎么做?您实际上需要以非常高的速度一遍又一遍地绘制整个矩阵以手动对矩阵进行 PWM。出于这个原因,如果您想要制作大量色彩和动态视频并让它看起来不错,您需要有一个非常快速的控制器(至少 50 MHz )。
我们可以多快将数据输入矩阵?论坛用户 Andrew Silverman 和 Ryan Brown 一直在发布他们的进展用 FPGA 驱动 16x32 矩阵,极限似乎在 40 到 50 MHz 之间。Ryan 写道:“我还没有验证 100% 的像素正确性,但 50 MHz 似乎对我有用 […] 67MHz 绝对行不通。”
自制HUB75接口的ArduinoUNO扩展板
以Proto Shield 原型扩展板为主,加装羊角P16插座,方便于做实验
做好的是这样
HUB75接口扩展板接线
UNO HUB75
D2 R1
D3 G1
D4 B1
D5 R2
D6 G2
D7 B2
D8 CLK
D9 OE
A0 A
A1 B
A2 C
A3 STB
GND GND
点击下载库文件,并安装
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/RGB-matrix-Panel
https://github.com/adafruit/Adafruit_BusIO