资料介绍
描述
您可以在ElectroPeak 的官方网站上阅读本教程和其他精彩教程
概述
在本教程中,您将学习如何使用带有 IC MAX7219 的 8×8 点阵 LED 模块。最后,您将能够轻松地、固定或滚动地在一个或多个点阵上显示任何形状或文本,仅使用 4 个 arduino 数字引脚。
你将学到什么:
- 什么是点阵LED
- 如何在 Arduino 上使用点阵 LED
- 在点阵 LED 模块上显示特定形状
- 级联两个点阵 LED
什么是点阵?
ot Matrix LED 8×8 是一个 LED 阵列,您可以在其上显示特定的数字、字母和形状。点阵由行数和列数表示。最受欢迎的点阵类型是其 8×8 类型,它提供 8 行 8 列的 64 个 LED。
要简单地控制8×8点阵,你应该将每一行和每一列连接到一个数字引脚,这意味着你需要16个数字引脚!所以这不是一个正确的方法。
要控制点阵,有一些基于 MAX72xx ICS 的模块需要连接到 4 个数字引脚而不是 16 个。您还可以将多个点阵(最多 8 个)相互连接,而无需任何额外的引脚并将它们级联。
如何使用 Arduino 连接点阵模块
电路
要将点阵连接到Arduino,只需将Vcc和GND引脚连接到5V和GND Arduino,点阵的DIN、CS和CLK引脚可以连接到arduino的任何数字引脚。
代码
点阵和 Arduino 有各种库。Ledcontrol和MaxMatrix库是两个最常见的库,它们具有相同的结构。
现在将以下代码上传到您的 Arduino 板上。
/*
8x8 Dot Matrix w/ MAX7219
modified on 7 March 2019
by Saeed Hosseini @ Electropeak
https://electropeak.com/learn/
*/
#include int DIN = 7;
int CLK = 6;
int CS = 5;
int maxInUse = 1;
byte buffer[20];
char text[] = "a";
MaxMatrix m(DIN, CS, CLK, maxInUse);
void setup() {
m.init();
m.setIntensity(8);
}
void loop() {
m.setDot(0, 7, true);
m.setDot(0, 7, true);
delay(1000);
m.setDot(7, 0, true);
delay(1000);
m.setColumn(3, B11110000);
delay(1000);
m.setColumn(4, B00001111);
delay(1000);
m.clear();
delay(1000);
}
该库的一些最重要的功能如下:
在点阵上显示特定形状
要在点阵上显示您的特定形状,只需将 LED 灯图案转换为位串即可。为此,您可以从此类在线工具中获得帮助。设计您的形状并将生成的代码复制到 Arduino,然后将其上传到您的板上。
/*
8x8 Dot Matrix w/ MAX7219
modified on 7 March 2019
by Saeed Hosseini @ Electropeak
https://electropeak.com/learn/
*/
#include 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();
}
您还可以通过此方法创建和显示数字和字母。
要插入常见的数字、字母和符号,您可以使用以下字符串和函数:
#include byte buffer[10];
PROGMEM const unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // < 3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // = 3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};
void printCharWithShift(char c, int shift_speed) {
if (c < 32) return;
c -= 32;
memcpy_P(buffer, CH + 7 * c, 7);
m.writeSprite(32, 0, buffer);
m.setColumn(32 + buffer[0], 0);
• for (int i = 0; i < buffer[0] + 1; i++)
{
delay(shift_speed);
m.shiftLeft(false, false);
}
}
void printStringWithShift(char* s, int shift_speed) {
while (*s != 0) {
printCharWithShift(*s, shift_speed);
s++;
}
}
void printString(char* s)
{
int col = 0;
while (*s != 0)
{
if (*s < 32) continue;
char c = *s - 32;
memcpy_P(buffer, CH + 7 * c, 7);
m.writeSprite(col, 0, buffer);
m.setColumn(col + buffer[0], 0);
col += buffer[0] + 1;
s++;
}
}
级联两个点阵LED模块
点阵模块的一个有趣特性是能够连接多个(最多 8 个)模块并在其上显示级联信息。
电路
为此,将第一个模块的 Dout 连接到下一个模块的Din ,并将具有相同名称的其他引脚相互连接。
代码
现在将以下代码上传到您的 Arduino 并查看结果。
/*
8x8 Dot Matrix w/ MAX7219
modified on 7 March 2019
by Saeed Hosseini @ Electropeak
https://electropeak.com/learn/
*/
#include 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();
}
笔记
不要忘记您只是直接对第一个模块进行编程。
- 基于max7219的8*8 LED矩阵
- MAX7219芯片 共阴LED驱动器 详细介绍
- max7219点阵模块程序 24次下载
- MAX7219点阵电路原理图的详细资料介绍 32次下载
- MAX7219点阵的原理图免费下载 23次下载
- MAX7219点阵驱动程序和原理图及MAX7219的数据手册免费下载 32次下载
- MAX7219点阵的电路原理图免费下载 10次下载
- 如何使用51单片机和MAX7219控制点阵滚动显示详细资料和程序说明
- 使用51单片机控制LED实现8X8点阵的电路图和程序及资料说明
- MAX7219点阵资料包 7次下载
- 8X8点阵LED显示屏字模提取软件(测试版) 0次下载
- 8×8点阵显示仿真 37次下载
- 双色8×8点阵LED的动态显示
- 基于MAX7219的LED数码显示驱动电路设计 293次下载
- 数码显示驱动芯片MAX7219的编程研究
- 74HC595驱动8*8点阵LED的原理分析 4717次阅读
- 博流BL606P音视频开发板:驱动MAX7219点阵模组 739次阅读
- 基于MAX7219芯片的LED数码显示电路设计 3197次阅读
- AT89S51单片机对8X8点阵LED的控制设计 4498次阅读
- 8*8点阵基础知识讲解 5.3w次阅读
- max7219数据手册(使用方法、max7219驱动数码管点阵显示电路与使用时需注意事项) 6.9w次阅读
- max7219与74hc595区别 2w次阅读
- MAX7219封装尺寸图及规格 7996次阅读
- 树莓派上MAX7219的字符驱动程序编写 6901次阅读
- max7219与arduino驱动设计例程 4.7w次阅读
- MAX7219命令控制字(电路图与例程) 1.1w次阅读
- max7219驱动4个数码管连接图 1.6w次阅读
- MAX7219驱动共阴极LED原理图及程序 2.3w次阅读
- max7219点阵驱动程序分享 1.8w次阅读
- max7219驱动数码管程序(51单片机+STM32 MAX7219数码管程序案例) 1.8w次阅读
下载排行
本周
- 1SL6341B USB3.2 Gen1X1 接口的的4口HUB
- 2.94 MB | 5次下载 | 免费
- 2使用CR6850C设计并制作12V5A开关电源
- 1.53 MB | 5次下载 | 2 积分
- 3设计院eplan 500多页项目图纸
- 21.43 MB | 3次下载 | 1 积分
- 4和芯润德USB3.0HUB芯片SL6341设计资料
- 2.58 MB | 2次下载 | 免费
- 5stm32sx1262资料大全
- 7.98 MB | 2次下载 | 免费
- 6放大器和位:数据转换器放大器选择简介
- 455.89KB | 1次下载 | 免费
- 7P6KE6.8A瞬态抑制二极管 DO-15封装 产品规格书
- 0.37 MB | 1次下载 | 免费
- 81.5KE8.2A 瞬态抑制二极管 DO-201AD封装规格书
- 0.30 MB | 1次下载 | 免费
本月
- 1新概念模拟电路第四册信号处理电路电子书免费下载
- 10.69 MB | 51次下载 | 免费
- 2SW6308V原理图设计指南
- 0.75 MB | 14次下载 | 1 积分
- 3SW6308V三口多协议升降压移动电源SOC中文手册
- 1.61 MB | 14次下载 | 1 积分
- 4800VA纯正弦波逆变器的参考设计
- 2.96MB | 13次下载 | 免费
- 5纯电动汽⻋的主要部件及⼯作原理
- 5.76 MB | 12次下载 | 5 积分
- 6GP328和GP88S对讲机的维修实列资料合集免费下载
- 0.03 MB | 10次下载 | 10 积分
- 7SW6308V寄存器手册
- 1.08 MB | 10次下载 | 1 积分
- 8Type-C VL160数据手册
- 0.92 MB | 9次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935115次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191365次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73805次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多