控制 5000 个 LED

电器工程 引领 复用器
2022-02-01 20:45:21

我正在做一个需要控制 10,000 个 I/O 的项目。

5000 输出 - 对于 5000 LED,一次仅点亮 1 个 LED

5000 输入 - 对于 5000 传感器,它将感应物体的存在。

基本上,我正在做一个存储系统(类似于鸽子洞的东西),小盒子将放在这个鸽子洞里。目前我有大约 5000 个盒子放置在 20 个机架上。每个机架有 250 个孔(10 列 x 25 行)。

每个孔都有一个 LED 和一个传感器。因此,我需要 5000 个 LED 和 5000 个传感器。

所有传感器和 LED 都将连接到一个系统。当我需要将盒子放入鸽子洞时,我会扫描盒子的条形码并将其注册到系统中。然后系统将寻找任何机架中的空插槽并点亮 LED。我将把盒子放在鸽子洞里,然后 LED 熄灭。

如果我需要取回任何盒子,我会输入盒子编号,准确位置的 LED 会亮起。

不太确定如何开始。想知道什么样的硬件有这样数量的 I/O 端口。

4个回答

最好的方法是将 LED 放置在64x80 矩阵中。由于任何时候都只需要点亮 1 个 LED,因此您可以对行和列使用解复用器。对于你想要 1 行低的行,1 行高的列。
一种解决方案是对行使用 10个 74HC138,由 7 个地址线 (2 < 80 < 2 ) 控制。您需要一些额外的逻辑来从该地址导出每个 74HC138 的控制输入。对于列,您需要 8 个74HC238,它与 74HC138 类似,但输出高电平有效。在这里,您只需要 6 个地址行 (64 = 2 )。因此,您总共将拥有 13 个地址行。 676

另一种方法是使用CPLD13 个地址线输入,64 列 + 80 行输出。那是 157 个 I/O。Altera 有一些符合要求的 MAX3000器件。

如果您没有像概要面板那样的紧凑型 LED 演示,您可能希望以更高的电流驱动它们以获得更好的可见性。在这种情况下,您需要在输出端增加额外的晶体管。

哇哦,男孩......这不会是一个便宜的项目!

我同意拉涅利关于将项目分解为重复的“瓷砖”的一般概念。

假设您有 20 个 10 列 x 25 行的机架;我怀疑您需要的是每个机架的主控制器(也将处理配电)与每行的“架子单元”配对,负责驱动 10 列的 LED 并感应盒子。主控制器还可以驱动机架顶部的主灯,以便轻松发现目标机架。

考虑到所涉及的距离,我认为您不应该使用 USB 作为与机架的互连——USB 不喜欢长距离驱动。相反,像以太网这样的隔离接口或光隔离 ala MIDI 可能是更好的选择。然而,机架内的接口几乎可以通过任何方法完成。

XMOS 器件通常用于控制非常大的 LED 阵列。LED 被分组为“块”,每个块由 XMOS 芯片和合适的移位寄存器控制。XMOS 设备可以通过高速 XLink 或以太网相互连接,并且可以通过以太网或 USB 与主机系统通信。XMOS 设备可以在软件中实现高速 USB 和以太网,只需要合适的 PHY 芯片。

5,000 个输入可以以类似的方式连接。

如果没有更准确地了解整个系统应该做什么,或者应该如何安排 LED 和传感器,真的很难提出明确的建议,但我会试一试。

您不会找到具有 10000 个数字 IO 端口的单个组件,即使您为 LED 和传感器使用驱动器/缓冲/偏置电路也会占用电路板上的大量空间。你最好的选择是分而治之——创建一些处理特定子任务的“图块”并将它们连接在一起。

例如,如果 LED 和传感器需要位于同一位置,则每个图块可能有 100 个 LED 和 100 个传感器、(去)多路复用器和一个简单的微控制器。然后,您将组装 50 个这样的瓷砖,使总数达到 5000 个 LED 和 5000 个传感器。然后,您将这些瓦片中的每一个连接到“母板”,该“母板”可以寻址各个板,与它们上的微处理器通信并写入/读取 LED 和传感器值。

主要设计决策之一将是母系统的“电源”以及互连电路。例如,如果您愿意通过笔记本电脑(或类似设备)控制该设备,则可以使用 USB 作为互连。然后,您可以在磁贴上运行软件 USB 堆栈,例如 VUSB,以降低成本。其他选项可能是 CAN、I2C 甚至以太网。同样,系统的细节决定了使用什么。

对于特定用途,有很多可用的快捷方式。例如,如果将 LED 用作显示器,您可以使用矩阵设置和简单的帧缓冲器从单个微控制器驱动它们。