电路连接
Arduino Uno --- MAX7219
5V <---> VCC
GND <---> GND
12 <---> DIN
11 <---> CS
10 <---> CLK
程序及库文件
LedControl库使用说明
该库用于使用 MAX7219驱动的SPI总线8*8 LED显示屏及7段LED数码管。定义一个对象最多可以驱动8块8*8LED显示屏(每块64个LED总共512个)或8个7段数码管,需占用三个Arduino的IO口。如需驱动超过8个设备只能定义多个对象,但需要占用更多的IO口
把下载的库文件夹存放在Arduino 安装目录的libraries库文件夹
库函数:
LedControl(intdataPin,intclkPin,intcsPin,intnumDevices)
用途:初始化设备,设置DIN(dataPin)、CLK、CS的IO口及连接设备数量(既有多少块屏)并定义一个对象。参数:
dataPin
设置DIN口对应的Arduino上的IO口
clockPin
设置CLK口对应的Arduino上的IO口
csPin
设置CS口对应的Arduino上的IO口
numDevices
设置最大设备连接数(也就是8*8LED屏的个数),只能设置1-8,如果需要连接超过8个设备,则需要定义另一个对象并使用另外的IO口
代码部分
#include <LedControl.h>
int DIN
= 12;
intCS= 11;
int CLK
= 10;//定义8*8点阵屏的三个针脚
LedControl lc=LedControl(DIN,CLK,CS,4);//LEDControl库函数
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 [])
{
inti= 0;
for(i=0;i<8;i++)
{
lc.setRow(0,i,character[i]);
}//点阵输出函数
}