还记得之前做的一个怦然心动的8*8点阵实验吗?
很多小伙伴都会觉得,插口都用完了还能用其他的功能吗?
现在使用MAX7219这个驱动模块
只占用3个IO口,就可以控制8*8点阵的显示,非常实用,简单。
问题注意:
① 接线的时候,注意方向,在IN的方向接线(输入)
② LED的方向也要注意,如果显示不正常,请转变下安插的方向。
Arduino Uno x1
MAX7219 LED 8*8点阵模块 x1
跳线若干
在IN方向的针脚
Arduino Uno --- MAX7219
5V <---> VCC
GND <---> GND
12 <---> DIN
11 <---> CS
10 <---> CLK
先下载库文件
https://github.com/wayoda/LedControl
把下载的库文件夹存放在Arduino 安装目录的libraries库文件夹
程序&库&软件 打包下载:https://u16460183.ctfile.com/fs/16460183-296052687
文件夹说明:
LedControl-master —— MAX7219库(请复制在Arduino的库目录里)
MAX7219 8x8点阵软件
LS_MAX7219_8x8 —— 主程序
#include
int DIN = 12;
int CS = 11;
int CLK = 10;
byte e[8]= {0x7C,0x7C,0x60,0x7C,0x7C,0x60,0x7C,0x7C}; //E
byte d[8]= {0x78,0x7C,0x66,0x66,0x66,0x66,0x7C,0x78}; //D
byte u[8]= {0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x7E}; //U
byte c[8]= {0x7E,0x7E,0x60,0x60,0x60,0x60,0x7E,0x7E}; //C
byte eight[8]= {0x7E,0x7E,0x66,0x7E,0x7E,0x66,0x7E,0x7E}; //8
byte s[8]= {0x7E,0x7C,0x60,0x7C,0x3E,0x06,0x3E,0x7E}; //S
byte dot[8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18}; //.
byte o[8]= {0x7E,0x7E,0x66,0x66,0x66,0x66,0x7E,0x7E}; //O
byte m[8]= {0xE7,0xFF,0xFF,0xDB,0xDB,0xDB,0xC3,0xC3}; //M
LedControl lc=LedControl(DIN,CLK,CS,4);
void setup(){
lc.shutdown(0,false); //启动时,MAX72XX处于省电模式
lc.setIntensity(0,8); //将亮度设置为最大值
lc.clearDisplay(0); //清除显示
}
void loop(){
byte smile[8]= {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C};//笑脸
byte neutral[8]= {0x3C,0x42,0xA5,0x81,0xBD,0x81,0x42,0x3C};//标准脸
printByte(eight);//显示8
delay(1000);//延时1秒
printByte(neutral);//显示标准脸
delay(1000);
}
//点阵显示函数
void printByte(byte character [])
{
int i = 0;
for(i=0;i<8;i++)
{
lc.setRow(0,i,character[i]);
}
}