你是否对绚丽多彩、变化万千的光立方动画充满好奇?想知道这些令人惊叹的视觉效果背后隐藏着怎样的奥秘?今天,就让我们一同深入光立方的世界,揭开它神秘的面纱。之前在网上看了一些光立方的演示视频,被它那些立体感吸引了。想到自己学单片机也这么久了,于是乎就想做一个玩玩,同时可以复习一学期以来自己的编程能力和动手的能力,一举两得是一件很不错的事情。向朋友要了一些资料,就开工了。
光立方顾名思义就是一个立方体,采用的是8*8*8的模式,主要分为三个模块:主控模块、驱动模块、显示模块;
一、光立方的魅力之源:随心掌控灯珠
光立方之所以吸引众多爱好者,关键在于它给予我们极大的创作自由。我们可以按照自己的想象,随心所欲地控制每一个灯珠,将脑海中构思的精美动画精准呈现。无论是简单的几何图案,还是复杂的动态场景,只要我们敢想,光立方都有机会将其变为现实。
二、光立方的核心原理:点亮点阵的智慧
(一)点阵点亮基础
先来看一张 LED 点阵图,这是理解光立方原理的关键。如果想要点亮任意位置的 LED,其实方法很简单,只需将该位置 LED 所使用的列线接地,行线接上 +V 即可。这就像是开启一盏灯的开关,通过控制电流的路径,让特定的 LED 发光。
(二)与数码管的关联
学过单片机的朋友肯定对数码管不陌生。数码管通过位选和段选,并借助扫描的方式来正常工作,从而显示出我们需要的数字。点阵和数码管有着相似之处,就拿 8*8 的点阵来说,要想让它自由地显示各种图案,也需要采用动态扫描技术。因为如果不这样做,就无法对众多的灯珠进行精准控制。
(三)动态扫描的奥秘
那么什么是动态扫描呢?简单来讲,就是每次只能让一行或者一竖排的灯亮起来,这样 8 次为一个完整的周期。每次从左至右依次点亮一排灯,当这个过程快速循环时,由于人眼的视觉暂留特性,我们看到的就不再是一个个单独闪烁的灯排,而是一幅完整的图像。这就好比我们快速翻动一本有连续图案的书,原本静止的画面就会动起来一样神奇。
三、光立方的分层架构:立体与平面的结合
光立方一共有 8 层。在连接方面,有着独特的规律。纵向一束的正极性引脚要连接在一起,而横向一层的负极性引脚也要汇聚一处。从扫描的角度出发,每一次只能点亮其中的一层。光立方的每一层都像是一个 8*8 的平面点阵,虽然有 64 个灯,但我们会使用 64 根线分别与这些灯相连,这样就能一次性对这 64 个灯进行全面的控制。我们把整个立体画面从下往上划分成 8 层,每次扫描一层,当 8 层依次扫描完成,一幅完整的光立方画面就呈现在我们眼前。不过,由于单片机的引脚数量通常比较有限,为了实现对更多灯珠的控制,我们往往会采用 74hc595 芯片来进行拓展(关于 74hc595 芯片的详细原理,可以参考其专门的用户手册)。这里有一张使用 74hc595 芯片拓展的电路图(这张图是模块原理图的截图,接线部分可能不是特别清晰,大家可以进一步参考完整的原理图)。在这个电路图中,数据会以串行的方式传输到每一个 74hc595 芯片里,然后在芯片内部的控制器中存储起来,最终实现一层 64 个灯同时点亮的效果。
四、光立方画面显示的硬件流程:有序的点亮与熄灭
下面详细介绍一下光立方显示一个固定画面时,硬件是如何运作的:
首先,将第一层 64 个点的数据传输到 8 个 74hc595 芯片中,接着控制 uln2803 层控制芯片打开第一层的开关,此时第一层的灯被点亮,而其他层的灯则处于熄灭状态。然后等待一段时间 t。这个等待时间是非常关键的,它会影响到画面的稳定性和流畅性。之后熄灭第一层的灯,开始向 74hc595 芯片传输第二层的数据,数据传输完成后进行锁存操作,再开启第二层的总控制开关,点亮第二层。同样等待时间 t。…… 如此循环往复,直到熄灭第一层后,将第八层的数据传入所有 74hc595 芯片中,锁存并开启第八层总开关,点亮第八层。然后又回到第一步,持续循环。正是因为人眼具有视觉暂留的特性,只要这个刷新过程足够快,我们看到的光立方就像是整体都在持续发光,从而实现了我们想要的精美动画效果。为了确保画面的亮度均匀稳定,上述间隔点亮的时间 t 必须严格保持一致,否则就容易出现亮度不均的瑕疵,影响整体视觉效果。
五、光立方硬件的优化与保护:二极管的重要作用
在实际使用光立方的电路时,还有一个小技巧可以提升整体性能和稳定性。那就是给 74hc595 输出的 64 个引脚分别加上一个二极管。别小看这个二极管,它能起到多方面的作用。一方面,它可以有效地保护二极管本身,防止电流过大或者反向电流等异常情况对二极管造成损坏;另一方面,它还能对整体功耗进行一定的限制,避免电路因为功耗过高而出现过热等问题;此外,通过合理选择二极管的参数,还能在一定程度上调节光立方的亮度,让我们可以根据实际需求来调整光立方的显示效果。
六、光立方的色彩升级:从单色到全彩的跨越
前面我们主要介绍了传统单色光立方的原理和相关知识。随着技术的不断发展,光立方也迎来了色彩的升级,出现了双彩色和 RGB 全彩光立方。其画面成像的基本原理和单色光立方是相似的,主要的创新点在于配色方面,也就是所谓的混色技术。例如,当红色和蓝色的灯同时点亮时,就会神奇地出现紫色。通过软件的精确控制,让多种颜色的灯在不同或者相同的时间点亮,就能创造出无数丰富多彩、绚丽夺目的图案。
在硬件部分,由于彩色光立方需要控制更多的颜色和灯珠,考虑到单片机的 IO 口限制,我们将原来单色光立方中使用的 2803 层驱动芯片换成了 74Hc573。通过巧妙地控制 74Hc573 的使能控制端口,就能够轻松地切换相应颜色的 LED 灯选择。下面以 RGB 光立方为例详细说明其工作原理。RGB 灯包含红绿蓝三种基本颜色,我们需要使用 3 个 74hc573 芯片来分别控制其中一种颜色。当我们需要显示某一种特定颜色时,只需要控制相应的 74hc573 芯片使能打开即可;而当我们想要实现混色效果时,比如想要显示黄色(由红色和绿色混合而成),那就同时打开控制红色和绿色 Led 灯对应的 74hc573 芯片就可以了。
器件清单:
原理图: