1. Home
  2. Docs
  3. 磁力电子学电路实验套件编程版(实验指南)
  4. 三、电路实验
  5. 3.14 驱动LED阵列

3.14 驱动LED阵列

实验名称: 驱动LED阵列
实验难度: ★★★★☆
实验简述: 8×8 LED阵列模块是一个非常有趣的积木部件,我们可以利用8行8列组成的LED点阵组件显示图案。本实验我们将通过程序控制LED阵列模块显示一个静态的心型图案。
实验过程: 拼接电路并连接好数据线,启动Buddy++,点击上方菜单栏右侧的“预设置”按钮,选择对应版型“Arduino Nano w / ATmega328”和当前连接的串口序号。

在Buddy++界面上方菜单栏点击“例子”选项,展开选项“例子程序”—>“Modular”—>“BD_LEDMatrix”,双击选中“MatrixImageTest”,打开LED阵列测试程序。

当然也可以在Buddy++中直接打开“Example-14.ino”源码文件。

找到以下一行代码:byte img1[] = {0x0, 0x66, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x18};

该行代码声明了一个byte类型的数组,数组以十六进制的方式记录了点阵的图形数据,我们可以更改这行代码实现显示图形的更换。

Buddy++提供了非常方便的插件生成图形数组代码,我们在左侧工具栏的最下方找到“扩展工具”并点击选择“LED阵列工具”。

我们可以使用鼠标选择LED阵列中哪些灯块被点亮,完成图案后点击“生成”,这样插件就会在代码编辑区的当前光标位置生成数组代码,我们把新生成的代码替换掉原来的即可。

完成选择后,我们将可以点击在上方菜单栏的“烧录”按钮,提示成功后代表程序烧录成功,这个时候程序就会在单片机控制模块中运行起来了,LED阵列模块将会显示我们设计的图案。

实验电路:  
程序代码:Example-14.ino

#include<BD.h>  
#include<BD_LEDMatrix.h>  
	  
BD_LEDMatrix ledm;  
	  
// 心形图案(需要修改的数据)  
byte img1[] = {0x0, 0x66, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x18};  
	  
void setup()   
{  
	// DIO->D9, CLK->D6, LE->D5  
	ledm.Init(D9, D6, D5);  
}  
  
void loop()   
{  
	ledm.Display(img1);
} 

 

重要提示: 把LED阵列模块连接到Arduino主控板模块的时候需要注意积木端口的接触问题,请保证每个积木的端口都接触良好,否则LED阵列模块将会出现乱码等意外状况。

图  实验电路实拍