使用Arduino Nano制作一个4×4×4 LED立方体

描述

在这个项目中,我们将使用 Arduino Nano 制作一个很酷的 4×4×4 LED 立方体。LED 立方体,也称为 LED矩阵,可以照亮您的房间、学习空间或创客区域,使其看起来非常酷炫。此外,它非常容易构建,并帮助您在电子和编码方面发挥创意。

我们的 LED 立方体尺寸为 4x4x4,由四层组成,每层包含 64 个 LED。这意味着,每层可容纳 16 个LED,如本文后面的图表所示。该连接涉及 64 个 LED 以特定组合连接到 Arduino。当 LED 的正极端子从 Arduino接收到高电平信号,负极端子获得低电平信号时,LED 亮起。要组装立方体,请将一个引脚连接到每列(总共 16 个),将一个引脚连接到每层(总共 4个)。因此,您只需要 20 个引脚即可完成这个令人印象深刻的4x4x4 LED 立方体项目。我们将指导您逐步构建四层,确保 LED对齐、均匀间隔并正确焊接到位。

使用 Arduino Nano 的 4×4×4 Led Cube 所需的组件

Arduino 纳米

64- 5mm 蓝色 LED

母头

彩虹带电缆

100Ω电阻

3V 电池测试 LED

零PCB板

铜丝

工具(烙铁、剪线机、砂纸)

4×4×4 LED立方电路图

使用 Arduino Nano 的 4 * 4 * 4 LED 立方体的电路图涉及多个组件和连接,以确保正常运行。这是一个分步说明。将 64 个
LED 排列成 4x4x4 矩阵。每个 LED 代表立方体中的一个像素。

将每个 LED 的阳极(较长的支腿)连接到其各自的行,将阴极(较短的支腿)连接到其各自的列。完整的 4x4x4 LED
立方体原理图如下图所示。

立方体

将 Arduino Nano 的数字输出引脚(A4 到 D13)连接到 LED 立方体的列。这些引脚将控制多维数据集的各个列。

将数字输出引脚(A0 至 A3)连接到立方体的层。这些引脚将控制立方体的每一层。将限流电阻(通常为 100-220
欧姆)与每层串联,以防止电流过大。将电阻的一端连接到Arduino Nano的数字输出引脚,另一端连接到相应的行。

立方体

请记住仔细检查您的连接并使用适当的限流电阻器来保护 LED。通过此设置,您可以对 Arduino Nano 进行编程,以在 4x4x4 LED
立方体上显示各种图案和动画。

4x4x4 LED 立方体如何工作?

在开始焊接并深入了解项目的细节之前,了解事情的运作方式非常重要。这个项目背后的主要大脑是一个名为Arduino
Nano的微控制器板。它就像一台微型计算机,使用 ATmega328P 微控制器。这个小家伙有 20
个引脚,可以用于不同的事情,比如打开和关闭东西。在我们的例子中,我们专注于 14 个数字引脚和 6 个模拟引脚,它们都将在我们的项目中充当开关。

现在,在 4x4x4 LED 立方体上,它由 64 个 LED 组成,排列成一种网格。有 4 层 LED,每层有 16 个 LED,采用 4x4
设置。一层中每个 LED 的设置方式乍一听可能有点复杂;它被称为共阳极。这仅意味着 LED 的所有正极均已连接。现在,这是很酷的部分,即使我们有 64 个
LED,我们只需要微控制器上的 20 个引脚来控制它们。我们使用 16 个引脚来控制每层的 LED。诀窍是通过它们的正极连接各层,通过给一个 LED 提供 5
伏电压并将负极连接到地面,我们可以让它亮起。其余 4 个引脚为各层供电。我们的编程魔力将使这一切顺利进行。下图显示了 4x4x4 LED 立方体 Arduino
模拟,您可以看到 arduino nano 上的每个引脚如何能够单独控制我们立方体上的 LED。

使用Arduino Nano设计和构建4×4×4 Led Cube

检查所有 64 个 LED,确保它们使用小纽扣电池工作。

立方体

在我们开始组装 LED 立方体并进行任何焊接之前,最好确保 LED 正常工作。我们的 LED 需要 3.3
伏电压。较长的导联为正,较短的导联为负。您可以使用任何 3.3V 电池轻松测试它们。在我的案例中,我使用了锂离子电池进行测试。

我们使用的 LED 是透明的,并且发出非常微弱的光,因此我们希望使它们不那么强烈。

漫射光使 LED 更亮,使立方体看起来更酷。只需在每个 LED 的顶面上擦拭砂纸,或者您可以使用带有砂纸的直流电机来扩散所有 64 个
LED。

构建 4x4x4 LED 立方体

立方体

要为您的 LED 立方体制作模板,请买一块足够大的木头来制作 4x4 网格,确保每个正方形为 25 毫米。首先在木头上用线条画一个 4x4
的网格。使用中心冲头在线条相交的地方打凹痕。然后,找到一个恰到好处的钻头——小到可以将 LED
牢固地固定到位,但又足够大,无需弯曲电线即可轻松拆卸。在网格上标记的点钻 16 个孔。现在,您的 LED 立方体模板已全部设置好,并准备好进行下一步组装。将
LED 插入各个孔中。

立方体

现在,取一根直铜线并将其焊接到第一行 LED 的正极引脚上,如下图所示。同样,以相同的方式焊接所有四排 LED 的正极引脚。

立方体

现在,继续通过焊接连接四根铜线两侧的腿端。这将建立连接,将 LED 的所有 16 个正极相互连接。通过这样做,我们将成功完成第一层的组装。

立方体

将孔正极脚焊接在一起后,将盒子翻转过来,开始将 LED 的尖端从夹具的孔中推出。确保均匀地执行此操作,以避免弯曲或损坏层结构。现在您的第一个 LED
层已经完成!再执行此步骤三次,最终得到四层。

立方体

接下来,取第一层 LED 并将 16 根负极引线焊接在一起,将各个层堆叠在一起。

立方体

将另一层放在上面,并将其中一个角与第一层正好对齐 25 毫米(或您在网格中使用的任何距离)。这是阳极线之间的距离。

用手将角固定到位,并将第一层的角阴极焊接到第二层的角阴极上。对所有角落都执行此操作。

立方体

立方体

4x4x4 LED
立方体开始成型。检查各层是否在所有尺寸上都完全对齐。如果没有,请稍微弯曲进行调整。或者,如果高度距离不对,则重新焊接。当它们完全对齐时,将剩余的 12
个阴极焊接在一起。

立方体

4×4×4 LED Cube Arduino代码说明

该代码的结构旨在执行一系列预定义的照明模式,从而在 4x4x4 LED 立方体上创建引人入胜的视觉体验。本页底部给出了完整的 4x4x4 LED
立方体代码。动画包括闪烁效果、连续 LED 激活、随机图案和各种动态显示。用户可以修改延迟时间并尝试顺序或创建新功能来自定义 LED 立方体的行为。

int layer[4]={A3,A2,A1,A0}; //initialize and declaring led layers

int column[16]={13,12,11,10,9,8,7,6,5,4,3,2,1,0,A5,A4}; //initializing and
declaring led rows

int time = 250;

column:保存 LED 立方体列的引脚号的数组。

layer:保存 LED 立方体各层的引脚号的数组。

time:一个变量,表示代码各个部分使用的延迟时间。

void setup()

{

for(int i = 0; i《16; i++)

{

pinMode(column[i], OUTPUT); //setting rows to output

}

for(int i = 0; i《4; i++)

{

pinMode(layer[i], OUTPUT); //setting layers to output

}

randomSeed(analogRead(10)); //seeding random for random pattern

}

setup 函数在程序开始时执行一次。它将列和层数组中的每个引脚设置为输出。它使用引脚 10 的模拟读数为随机数生成器提供种子。

void loop()

{

turnEverythingOff();

flickerOn();

turnEverythingOn();

delay(time);

turnOnAndOffAllByLayerUpAndDownNotTimed();

layerstompUpAndDown();

spiralInAndOut();

turnOnAndOffAllByColumnSideways();

delay(time);

aroundEdgeDown();

turnEverythingOff();

randomflicker();

randomRain();

diagonalRectangle();

goThroughAllLedsOneAtATime();

propeller();

spiralInAndOut();

flickerOff();

turnEverythingOff();

delay(2000);

}

loop 函数是程序的主要执行循环。它按顺序调用各种照明模式和效果,每个模式和效果都后跟几毫秒的时间延迟。然后,循环等待 2000 毫秒(2
秒),然后再开始下一次迭代。

4x4x4 LED 立方体Arduino代码的控制功能

该代码定义了多个函数,每个函数负责特定的照明模式或效果。以下是一些值得注意的功能的摘要。

turnEverythingOff(): 关闭所有 LED。

turnEverythingOn():打开所有 LED。

flickerOn() 闪烁(): 逐渐增加和减少所有 LED 的亮度。

turnOnAndOffAllByLayerUpAndDownNotTimed(): 按顺序上下模式打开和关闭图层。

turnOnAndOffAllByColumnSideways(): 以横向模式依次打开和关闭列。

layerstompUpAndDown(): 通过打开和关闭单个图层来模拟踩踏效果。

flickerOff(): 逐渐增加和减少所有 LED 的亮度。

aroundEdgeDown():以下降模式点亮立方体边缘周围的 LED。

randomflicker(): 模拟随机闪烁效果。

randomRain(): 使用随机掉落的 LED 模拟雨水效果。

diagonalRectangle():以对角矩形模式点亮 LED。

螺旋桨():模拟螺旋桨效应。

spiralInAndOut(): 以螺旋进出模式点亮 LED。

goThroughAllLedsOneAtATime():按顺序打开和关闭所有 LED,一次打开和关闭一个。

该代码提供了一组用于控制 4x4x4 LED 立方体、创建各种照明模式和效果的函数。每个照明模式都封装在一个功能中,促进了模块化和易于理解。loop
函数按顺序编排这些模式的执行。

4x4x4 LED立方体代码生成器

我知道对 LED 立方体进行编程可能是一个真正的头疼问题,尤其是在将它们放在一起之后。这就是为什么这是一个易于使用的 Windows 应用程序,名为
Cube3D。这个应用程序消除了对 LED 立方体进行编程的痛苦。它旨在编写必要的代码,无论您是将 Arduino 还是 C 与 Atmel Studio
一起使用。现在,一切都为 4x4x4 LED 立方体做好了准备。从链接下载 Cube3D 应用程序 (.exe) 并按照安装向导进行操作。

该应用程序为 4x4x4 LED 立方体生成一个图案表,并使其易于可视化图案。用于对 LED
立方体进行编程的代码随应用程序一起提供,并且也存在于其自己的存储库 LED-Cube-Code 中。

立方体

只需单击它们来选择要点亮的 LED – 超级简单!在代码编辑器中按 Enter 键后,它就会发挥其魔力,并根据立方体中打开的 LED
创建一个模式。它有一个时间变量的输入字段,通过更改它,您可以更改模式在立方体上显示的时间(以毫秒为单位)。
审核编辑:陈陈

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分