led矩阵显示任意图像字符

释放双眼,带上耳机,听听看~!

简介

在本教程中,您将学习如何使用带有IC MAX7219的8×8点阵LED模块。最后您将能够使用arduino的4个数字引脚轻松图像显示,固定或滚动在一个或多个点阵上显示任何形状或文本。

步骤一 材料准备

硬件准备:

arduino uno

ElectroPeak MAX7219点阵显示模块

ElectroPeak 跳线

软件准备:

arduino IDE

步骤二 原理说明

什么是点阵?

8×8矩阵LED 是一组LED,您可以在其上显示特定的数字,字母和形状。点阵由行数和列数表示。最受欢迎的点阵组成是8×8型,可提供8行8列64个LED。

led矩阵显示任意图像字符

要简单地控制点阵8×8,您应该将每行和每列连接到数字引脚,这意味着您需要16个数字引脚!所以这不是一个优秀的方法。

为了控制点阵,有基于MAX72xx ICS的模块需要连接到4个数字引脚而不是16个。您还可以将多个点阵(最多8个)相互连接,无需任何额外的引脚并级联它们。

led矩阵显示任意图像字符

步骤三 电路搭建

使用一块led矩阵电路搭建

led矩阵显示任意图像字符

使用多个led矩阵电路搭建

led矩阵显示任意图像字符

步骤四 编写程序

Dot matrix和Arduino有各种各样的库。该LedcontrolMaxMatrix是两种最常见的库,都具有相同的结构。

测试代码如下:

/*
 8x8 Dot Matrix w/ MAX7219
 modified on 7 March 2019
 by Saeed Hosseini @ Electropeak
 https://electropeak.com/learn/
*/
#include <MaxMatrix.h>
int DIN = 7;
int CLK = 6;
int CS = 5;
int maxInUse = 1;
MaxMatrix m(DIN, CS, CLK, maxInUse);
byte poker[] = {8, 8,
               0xff,
               0x81,
               0xa5,
               0xa1,
               0xa1,
               0xa5,
               0x81,
               0xff
              };
byte smile[] = {8, 8,
               0xff,
               0x81,
               0xb5,
               0xa1,
               0xa1,
               0xb5,
               0x81,
               0xff
              };
byte sad[] = {8, 8,
             0xff,
             0x81,
             0xb5,
             0x91,
             0x91,
             0xb5,
             0x81,
             0xff
            };
byte kiss[] = {8, 8,
              0xff,
              0x81,
              0xb5,
              0xb1,
              0xb1,
              0xb5,
              0x81,
              0xff
             };
void setup() {
 m.init();
 m.setIntensity(8);
}
void loop() {
 m.writeSprite(0, 0, smile);
 delay(1000);
 m.clear();
 m.writeSprite(0, 0, poker);
 delay(1000);
 m.clear();
 m.writeSprite(0, 0, sad);
 delay(1000);
 m.clear();
 m.writeSprite(0, 0, kiss);
 delay(1000);
 for (int i = 0; i < 8; i++) {
   m.shiftLeft(false, false);
   delay(300);
 }
 m.clear();
} 

在点阵上显示特定形状

要在点阵上显示特定形状,只需将LED灯图案转换为位串即可。为此,您可以借助辅助软件设计你的形状,并将生成的代码复制到Arduino,然后将其上传到你的主板上。

#include <MaxMatrix.h>
int DIN = 7;
int CLK = 6;
int CS = 5;
int maxInUse = 1;
MaxMatrix m(DIN, CS, CLK, maxInUse);
byte poker[] = {8, 8,
               0xff,
               0x81,
               0xa5,
               0xa1,
               0xa1,
               0xa5,
               0x81,
               0xff
              };
byte smile[] = {8, 8,
               0xff,
               0x81,
               0xb5,
               0xa1,
               0xa1,
               0xb5,
               0x81,
               0xff
              };
byte sad[] = {8, 8,
             0xff,
             0x81,
             0xb5,
             0x91,
             0x91,
             0xb5,
             0x81,
             0xff
            };
byte kiss[] = {8, 8,
              0xff,
              0x81,
              0xb5,
              0xb1,
              0xb1,
              0xb5,
              0x81,
              0xff
             };
void setup() {
 m.init();
 m.setIntensity(8);
}
void loop() {
 m.writeSprite(0, 0, smile);
 delay(1000);
 m.clear();
 m.writeSprite(0, 0, poker);
 delay(1000);
 m.clear();
 m.writeSprite(0, 0, sad);
 delay(1000);
 m.clear();
 m.writeSprite(0, 0, kiss);
 delay(1000);
 for (int i = 0; i < 8; i++) {
   m.shiftLeft(false, false);
   delay(300);
 }
 m.clear();
} 
led矩阵显示任意图像字符

级联两个点阵LED模块

Dot Matrix模块的一个有趣功能是能够连接多个(最多8个)模块并在其上显示级联信息。

为此,将Dout 从第一个模块连接到下一个模块的Din ,并将其他具有相同名称的引脚连接到彼此。

led矩阵显示任意图像字符

上传代码查看效果

/*
 8x8 Dot Matrix w/ MAX7219
 modified on 7 March 2019
 by Saeed Hosseini @ Electropeak
 https://electropeak.com/learn/
*/
#include <MaxMatrix.h>
int DIN = 7;
int CLK = 6;
int CS = 5;
int maxInUse = 2;
MaxMatrix m(DIN, CS, CLK, maxInUse);
byte pakman[] = {8, 8, 0x1c, 0x22, 0x41, 0x49, 0x55, 0x22, 0x00, 0x08};
void setup() {
 m.init();
 m.setIntensity(2);
}
void loop(){
 m.writeSprite(0, 0, pakman);
 delay(300);
 for (int i = 0; i < 8; i++) {
   m.shiftRight(false, true);
   delay(300);
 }
 m.clear();
} 
led矩阵显示任意图像字符

提取码:无
解压码:无

给TA打赏
共{{data.count}}人
人已打赏
Arduino

DPS3005便携式/可充电电源

2019-5-20 20:11:56

Arduino免费项目

arduino (模拟温湿度检测)模拟浇水+光控灯光

2019-6-6 18:48:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();