Arduino 8x8 LED 点阵_云起网
您现在的位置是:首页 > 技术文章 >

Arduino 8x8 LED 点阵

未知 2020-09-17 13:36
我们将与Arduino Uno对接8x8 LED矩阵模块。一个8x8 LED矩阵包含64个LED(发光二极管),它们以矩阵的形式排列,因此被命名为LED矩阵。
Arduino 8x8 LED Marix
在这个项目中,我们将设计一个8x8 LED矩阵显示器,为此,我们将与Arduino Uno对接8x8 LED矩阵模块。一个8x8 LED矩阵包含64个LED(发光二极管),它们以矩阵的形式排列,因此被命名为LED矩阵。
 
 
这些矩阵可以通过电路64发光二极管,但这一过程是耗时的。现在,有一天,他们可以在紧凑的形式,如下图所示。这些紧凑的模块有不同的大小和多种颜色。模块的成本与64 LED的成本相同,因此对于爱好者来说,这是最容易处理的。
 
裸露LED矩阵有16个引脚,其中8个是普通的正片,另外8个是普通的负片。为了将这个矩阵直接连接到UNO,我们需要在UNO上保留16个引脚。在UNO输出引脚低的情况下,我们不能少放16个引脚。所以我们需要把这个矩阵连接到驱动芯片上。这个驱动芯片和矩阵一起作为一个集合,如下图所示。
LED Matrix Module

这个模块将与Arduino用于显示字母表。首先,为了将LED矩阵与Arduino对接,我们需要下载一个专门为LED矩阵设计的库:Https://github.com/shaai/Arduino_LED_matrix_sketch/archive/master.zip
 
下载Zip文件后,将内容解压缩到Arduino文件夹。(转到安装Arduino Nightly软件的本地磁盘,打开该文件夹,搜索名为“Library”的文件夹,提取该文件夹中zip文件的内容,重新启动Arduino Nightly您现在将能够使用的矩阵接口功能的程序)
 
所需组件
硬件:Arduino Uno,电源(5v),100 UF电容器
 
软件:Arduino Nightly
 
电路图及解释
Arduino Uno和LED矩阵模块之间的连接如下表所示。
 
PIN2 ------------------命令接收引脚
 
PIN3------------------时钟引脚
 
PIN4 ------------------数据接收引脚
 
+5V ------------------VCC
 
GND ------------------接地
 
 
这个8×8 LED矩阵显示器的电路图如下图所示。
 
Arduino LED Matrix Circuit Diagram
 
 
现在,为了使用通过安装新库的调用,我们需要在程序中建立一些命令,如下所示。
 
#include "LedControlMS.h" #define NBR_MTX 1 LedControl lc=LedControl(4,3,2, NBR_MTX); lc.writeString(0,"CIRCUITDIGEST"); lc.clearAll();
 
首先,我们需要调用头文件来连接LED矩阵到Arduino Uno。即“#include”LedControlMS.h“,这个头文件调用库的特殊函数。
 
我们有一个功能与这些模块,我们可以许多模块串联,并将它们作为一个单一的显示程序。当我们需要一个可以一次显示多个字符的显示单元时,这个特性就会派上用场。所以我们需要告诉控制器我们连接了多少个显示器。
 
在本模块中,主要有三个引脚;从UNO到模块的数据流就是在这三个引脚之间进行的。所述引脚为数据(数据接收引脚)、时钟(时钟引脚)和CHIPSELECT(命令接收引脚)。
 
现在我们需要告诉UNO我们在哪里连接这些引脚。这是通过命令“LedControl lc=LedControl(4,3,2,NBR_MTX);”来完成的。“lc.writeString(0,”CIRCUITDIGEST“);”此命令用于告诉UNO哪些字符将显示在LED矩阵上。与上述显示显示“CIRCUITDIGEST”,每一个字符一次。
 
在发送任何其他数据之前,我们需要清除显示芯片内存,这是通过命令“lc.ClearAll();”来完成的。
 
通过这种方式,我们可以很容易地接口8x8 LED矩阵到Arduino Uno。


#include "LedControlMS.h"
 
//pin 4 is connected to the DataIn
 
// pin 3 is connected to the CLK
 
//pin 2 is connected to LOAD
 
#define NBR_MTX 1 //number of matrices attached is one
 
LedControl lc=LedControl(4,3,2, NBR_MTX);//
 
void setup()
 
{
 
for (int i=0; i< NBR_MTX; i++)
 
  {
 
lc.shutdown(i,false);
 
/* Set the brightness to a medium values */
 
lc.setIntensity(i,8);
 
/* and clear the display */
 
lc.clearDisplay(i);
 
delay(100);
 
  }
 
}
 
void loop()
 
{
 
lc.writeString(0,"CIRCUITDIGEST");//sending characters to display
 
lc.clearAll();//clearing the display
 
delay(1000);
 
}
 
(吃猫的鱼)