LED矩阵是使用Arduinos构建的一些最受欢迎的项目。使用LED非常有趣,而且从它们那里获得的输出效果令人着迷。您可以将这些矩阵用于各种应用程序,以创建具有滚动文本和播放动画的标示牌。构建一个它真的很便宜和简单,它可以很容易地使用Arduino重新编程。您甚至可以自定义它以与音乐系统的输出一起使用,因此我们可以获得很酷的同步视觉效果。
在本教程中,我将向您展示如何使用Arduino和4017十年计数器构建一个花哨的8×10 Arduino LED矩阵(带滚动文本和动画)。您也可以在线购买组装的LED矩阵。这种类型的矩阵易于制作和编程,是学习多路复用的好方法。
焊接Arduino LED矩阵是一个棘手的部分,有很多方法可以做到这一点,我将与你分享我的方法。您需要在IC列中连接LED的所有正极引线,在行中连接负极引线。您可以使用焊点原型板焊接其上的LED。将LED推过电路板上的相邻孔。使用下面的电路图将Arduino LED矩阵连接在一起。然后,取第一个LED的正极引线并将其向下弯曲到其他LED并焊接相互接触的引脚。接下来,取下您焊接的最后一根导线并再次向下弯曲并重复,直到您在列中连接了所有正极导线。剪掉你没用过的额外长度的引线。
现在又出现了一个新的困境。也就是说:连接负极引脚,因为它们不能像正极引线一样弯曲和焊接,因为它们会相互短路。我的方法节省了大量时间并且更简单。诀窍是在列的连接上放一些磁带,将它们与负极引脚隔离。如果你这样做,你也可以弯曲负极引线并像正面那样连接它们。他们不会相互缺口,因为他们会被孤立。Arduino LED矩阵的电路如下图所示:
通过电阻,您必须将每列连接到Arduino(引脚0-7)。4017的复位引脚连接到Arduino上的引脚8,时钟引脚连接到Arduino上的引脚9。
Arduino LED矩阵的多路复用什么是多路复用?
它基本上是一种将信息分成小块并逐个发送的方法。这样你就可以在Arduino上保存很多引脚并保持你的程序简单。在我们的例子中,我们将要显示的图像分割成10个(10行)。我们想要扫描矩阵的行(一次点亮一行)并将信息从Arduino发送到列。所有列都是LED的正数,行是负数。因此,如果第一行接地并且我们向第一列发送信号,它将仅点亮行中的第一个LED。为了获得良好的显示效果,我们需要非常快速地扫描行,以至于人眼认为所有行都是同时连接的。
为何选择IC 4017?
为了控制这种Arduino LED矩阵,4017 IC是最好的方法。这是一个了解该IC基础知识的好网站:4017 IC。4017十年计数器帮助我们实现多路复用。该IC基本上扫描矩阵的行(一次点亮一行)。在我们的半导体例子中,我们想要将行连接到地,但是4017提供信号输出并且不能将LED接地。为了解决这个小问题,我们需要使用带电阻的晶体管。
4017有10个输出引脚,因此我们需要10个电阻和10个晶体管。我们将1K电阻连接到4017的输出,另一端连接到晶体管的基极,如本页顶部的电路图所示。接下来,我们将晶体管的集电极连接到LED行,将发射极连接到地。您也可以使用BC547 NPN晶体管。
编程Arduino LED矩阵我写了一个小程序,滚动文本并添加所有字母和数字。我为我的程序使用了端口,因为它节省了空间并且更容易处理。
如果您不知道如何使用Arduino上的端口,我建议您在开始之前访问Arduino网站以了解一些基本知识。这是链接:Arduino端口操作。
端口控制非常简单,请查看上图作为示例。红点表示LED为ON,白色为OFF。在矩阵的第一行,要打开第2和第7个LED,我们给Arduino端口命令:B01000010。这里第2和第7位为“1”,这又将LED打开。“B”表示Arduino端口是输出端口。我们对所有行进行此练习,最后,我们将在灯光中获得笑脸,如上图所示。
如果你想制作自己的图像,我制作了一个Excel工具,可以让你更容易地编写图像。你可以在我最后附上的zip文件夹中找到它。