資料介紹
描述
您可以在ElectroPeak 的官方網(wǎng)站上閱讀本教程和其他精彩教程
概述
在本教程中,您將學(xué)習(xí)如何使用帶有 IC MAX7219 的 8×8 點(diǎn)陣 LED 模塊。最后,您將能夠輕松地、固定或滾動(dòng)地在一個(gè)或多個(gè)點(diǎn)陣上顯示任何形狀或文本,僅使用 4 個(gè) arduino 數(shù)字引腳。
你將學(xué)到什么:
- 什么是點(diǎn)陣LED
- 如何在 Arduino 上使用點(diǎn)陣 LED
- 在點(diǎn)陣 LED 模塊上顯示特定形狀
- 級(jí)聯(lián)兩個(gè)點(diǎn)陣 LED
?
![pYYBAGOrzIiAJ-v8AAF6OxhtH9E941.jpg](https://file.elecfans.com/web2/M00/87/74/pYYBAGOrzIiAJ-v8AAF6OxhtH9E941.jpg)
什么是點(diǎn)陣?
ot Matrix LED 8×8 是一個(gè) LED 陣列,您可以在其上顯示特定的數(shù)字、字母和形狀。點(diǎn)陣由行數(shù)和列數(shù)表示。最受歡迎的點(diǎn)陣類型是其 8×8 類型,它提供 8 行 8 列的 64 個(gè) LED。
?
![poYBAGOrzIqAexwTAADYAJyMS_w717.png](https://file.elecfans.com/web2/M00/86/ED/poYBAGOrzIqAexwTAADYAJyMS_w717.png)
要簡(jiǎn)單地控制8×8點(diǎn)陣,你應(yīng)該將每一行和每一列連接到一個(gè)數(shù)字引腳,這意味著你需要16個(gè)數(shù)字引腳!所以這不是一個(gè)正確的方法。
要控制點(diǎn)陣,有一些基于 MAX72xx ICS 的模塊需要連接到 4 個(gè)數(shù)字引腳而不是 16 個(gè)。您還可以將多個(gè)點(diǎn)陣(最多 8 個(gè))相互連接,而無(wú)需任何額外的引腳并將它們級(jí)聯(lián)。
?
![pYYBAGOrzI-APmWGAADxTena70M013.jpg](https://file.elecfans.com/web2/M00/87/74/pYYBAGOrzI-APmWGAADxTena70M013.jpg)
如何使用 Arduino 連接點(diǎn)陣模塊
電路
要將點(diǎn)陣連接到Arduino,只需將Vcc和GND引腳連接到5V和GND Arduino,點(diǎn)陣的DIN、CS和CLK引腳可以連接到arduino的任何數(shù)字引腳。
?
![poYBAGOrzJGAJYz0AADxhK87f_k445.jpg](https://file.elecfans.com/web2/M00/86/ED/poYBAGOrzJGAJYz0AADxhK87f_k445.jpg)
代碼
點(diǎn)陣和 Arduino 有各種庫(kù)。Ledcontrol和MaxMatrix庫(kù)是兩個(gè)最常見(jiàn)的庫(kù),它們具有相同的結(jié)構(gòu)。
現(xiàn)在將以下代碼上傳到您的 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);
}
該庫(kù)的一些最重要的功能如下:
?
![poYBAGOrzJeAFlkYAAD9BuRt5pU800.png](https://file.elecfans.com/web2/M00/86/ED/poYBAGOrzJeAFlkYAAD9BuRt5pU800.png)
在點(diǎn)陣上顯示特定形狀
要在點(diǎn)陣上顯示您的特定形狀,只需將 LED 燈圖案轉(zhuǎn)換為位串即可。為此,您可以從此類在線工具中獲得幫助。設(shè)計(jì)您的形狀并將生成的代碼復(fù)制到 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();
}
?
您還可以通過(guò)此方法創(chuàng)建和顯示數(shù)字和字母。
要插入常見(jiàn)的數(shù)字、字母和符號(hào),您可以使用以下字符串和函數(shù):
#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++;
}
}
?
級(jí)聯(lián)兩個(gè)點(diǎn)陣LED模塊
點(diǎn)陣模塊的一個(gè)有趣特性是能夠連接多個(gè)(最多 8 個(gè))模塊并在其上顯示級(jí)聯(lián)信息。
電路
為此,將第一個(gè)模塊的 Dout 連接到下一個(gè)模塊的Din ,并將具有相同名稱的其他引腳相互連接。
?
![pYYBAGOrzJqACNYBAAFhHk2zMwQ469.jpg](https://file.elecfans.com/web2/M00/87/74/pYYBAGOrzJqACNYBAAFhHk2zMwQ469.jpg)
代碼
現(xiàn)在將以下代碼上傳到您的 Arduino 并查看結(jié)果。
/*
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();
}
?
筆記
不要忘記您只是直接對(duì)第一個(gè)模塊進(jìn)行編程。
?
?
?
- 基于max7219的8*8 LED矩陣
- MAX7219芯片 共陰LED驅(qū)動(dòng)器 詳細(xì)介紹
- max7219點(diǎn)陣模塊程序 24次下載
- MAX7219點(diǎn)陣電路原理圖的詳細(xì)資料介紹 32次下載
- MAX7219點(diǎn)陣的原理圖免費(fèi)下載 23次下載
- MAX7219點(diǎn)陣驅(qū)動(dòng)程序和原理圖及MAX7219的數(shù)據(jù)手冊(cè)免費(fèi)下載 33次下載
- MAX7219點(diǎn)陣的電路原理圖免費(fèi)下載 10次下載
- 如何使用51單片機(jī)和MAX7219控制點(diǎn)陣滾動(dòng)顯示詳細(xì)資料和程序說(shuō)明
- 使用51單片機(jī)控制LED實(shí)現(xiàn)8X8點(diǎn)陣的電路圖和程序及資料說(shuō)明
- MAX7219點(diǎn)陣資料包 7次下載
- 8X8點(diǎn)陣LED顯示屏字模提取軟件(測(cè)試版) 0次下載
- 8×8點(diǎn)陣顯示仿真 37次下載
- 雙色8×8點(diǎn)陣LED的動(dòng)態(tài)顯示
- 基于MAX7219的LED數(shù)碼顯示驅(qū)動(dòng)電路設(shè)計(jì) 294次下載
- 數(shù)碼顯示驅(qū)動(dòng)芯片MAX7219的編程研究
- 74HC595驅(qū)動(dòng)8*8點(diǎn)陣LED的原理分析 7650次閱讀
- 博流BL606P音視頻開(kāi)發(fā)板:驅(qū)動(dòng)MAX7219點(diǎn)陣模組 910次閱讀
- 基于MAX7219芯片的LED數(shù)碼顯示電路設(shè)計(jì) 3476次閱讀
- AT89S51單片機(jī)對(duì)8X8點(diǎn)陣LED的控制設(shè)計(jì) 4639次閱讀
- 8*8點(diǎn)陣基礎(chǔ)知識(shí)講解 5.3w次閱讀
- max7219數(shù)據(jù)手冊(cè)(使用方法、max7219驅(qū)動(dòng)數(shù)碼管點(diǎn)陣顯示電路與使用時(shí)需注意事項(xiàng)) 7.1w次閱讀
- max7219與74hc595區(qū)別 2w次閱讀
- MAX7219封裝尺寸圖及規(guī)格 8239次閱讀
- 樹(shù)莓派上MAX7219的字符驅(qū)動(dòng)程序編寫 7102次閱讀
- max7219與arduino驅(qū)動(dòng)設(shè)計(jì)例程 4.7w次閱讀
- MAX7219命令控制字(電路圖與例程) 1.1w次閱讀
- max7219驅(qū)動(dòng)4個(gè)數(shù)碼管連接圖 1.7w次閱讀
- MAX7219驅(qū)動(dòng)共陰極LED原理圖及程序 2.4w次閱讀
- max7219點(diǎn)陣驅(qū)動(dòng)程序分享 1.9w次閱讀
- max7219驅(qū)動(dòng)數(shù)碼管程序(51單片機(jī)+STM32 MAX7219數(shù)碼管程序案例) 1.9w次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費(fèi)下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機(jī)控制開(kāi)發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費(fèi)
- 5STC15系列常用寄存器匯總免費(fèi)下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實(shí)現(xiàn)
- 2.94MB | 4次下載 | 免費(fèi)
- 7PCB圖繪制實(shí)例操作
- 2.92MB | 2次下載 | 免費(fèi)
- 8零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費(fèi)
- 2免費(fèi)開(kāi)源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
- 0.10 MB | 137次下載 | 免費(fèi)
- 4A7159和A7139射頻芯片的資料免費(fèi)下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測(cè)試電源的紋波
- 0.36 MB | 19次下載 | 免費(fèi)
- 7PIC16F716 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗(yàn)方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論