如何使用 Arduino 控制数百个单独的 LED?

电器工程 Arduino 引领 复用器 矩阵 查理普林
2022-01-18 00:17:53

我正在从事一个涉及数百个 LED 的电子项目。(说起六到七百个 LED……很多,我知道。)有没有办法用一个或几个 Arduino 来控制这么多 LED?我希望能够单独访问/控制每个 LED ,因为我想要做的是将 LED 绘制到世界的挂图上。然后,我将 Arduino 与 Google Analytics 连接,当有人从世界上的某个地方导航到我的网站时,离他们所在区域最近的 LED 将几乎实时亮起。

任何帮助,将不胜感激。谢谢!我试图研究一些并阅读有关多路复用和 charlie-plexing 的信息,但这些似乎最大为 100 左右?我假设我需要外部硬件/组件才能控制这么多 LED,但我到底需要什么才能做到这一点?有没有人创造过这么大的 LED 矩阵?

4个回答

当您单独复用大量 LED 时,常用方法是使用 N x M 矩阵。时间分为 N 个步骤,在每个步骤中,您激活 N 行线之一,以及您要启用的 LED 对应的列线。请注意,行线可以每条承载 M 倍 LED 电流,这需要一些缓冲。每个 LED 仅在 1/N 的时间内亮起,因此要保持正常亮度,您必须将电流增加 N 倍。大多数 LED 不喜欢这样。由于涉及大电流,Charlieplexing 在这种情况下不实用。

根据您的问题,我了解到您一次只想启用 1 个 LED?在这种情况下,Charlieplexing 没有任何问题。具有 31 个 I/O 引脚的 uC 可以驱动 900 个 LED。听起来建设将是一场噩梦……


5 年后更新:当您手头有太多时间时,普通多路复用或 Charlieplexing 很好,但是当我现在必须控制 100 个 LED 时,我会购买一长条 WS2801 LED。

您可以使用便宜且容易找到的 74HC595(或类似)移位寄存器,只需使用 arduino 中的几个引脚即可轻松控制数百个 LED。

在 Arduino 网站上什至有一个关于这个的教程!

使用 74HC595 串并移出

移出和 595 芯片

有时,您可能会用完 Arduino 板上的引脚,需要使用移位寄存器对其进行扩展。此示例基于 74HC595。数据表将 74HC595 称为“具有输出锁存器的 8 位串行输入、串行或并行输出移位寄存器;三态”。换句话说,您可以使用它一次控制 8 个输出,而只占用微控制器上的几个引脚。您可以将多个寄存器链接在一起,以进一步扩展您的输出。

我将以模块化的方式构建它。Maxim 的 6960 将为您驱动 64 个 LED,虽然它有点贵。它们由串行接口驱动,您最多可以将其中的 256 个连接在一起。

7218/7221 也可以。

这个问题的答案有点晚了,但这里有 528 个 LED Charlieplexed 来自单个 PICAXE 40X2。如果所有引脚都专用于这项工作,它将达到 930 个 LED。

构建: http ://www.picaxeforum.co.uk/entry.php?25-The-PICaxe-orrery

视频: http ://www.youtube.com/watch?v=82LvqiaH-iA

PICAXE 架构非常慢,因此在闪烁成为问题之前,可以同时点亮的 LED 的最大数量被限制在 15 个左右。更快的处理器和更聪明的编程将显着增加这个数字。