The MAX7219 is a compact, serial input/output common-cathode display drivers that interface microprocessors (µPs) to 7-segment numeric LED displays of up to 8 digits, bar-graph displays, or 64 individual LEDs. Included on-chip are a BCD code-B decoder, multiplex scan circuitry, segment and digit drivers, and an 8×8 static RAM that stores each digit. Only one external resistor is required to set the segment current for all LEDs. The MAX7221 is compatible with SPI™, QSPI™, and MICROWIRE™, and has slew-rate-limited segment drivers to reduce EMI.
A convenient 4-wire serial interface connects to all common µPs. Individual digits may be addressed and updated without rewriting the entire display. The MAX7219/MAX7221 also allow the user to select code-B decoding or no-decode for each digit.
Typically you can buy 8×8 LED matrix modules which use the MAX7219, here is a picture of one of these modules
I wired the module as follows Max7219 CLK = 6 Max7219 CS = 5 Max7219 DIN = 7 VCC was connected to 5v and Gnd to an available GND pin
Code
You need to install the LedControl library – http://playground.arduino.cc/Main/LedControl
[codesyntax lang=”cpp”]
#include "LedControl.h"
/*
Max7219_pinCLK = 6;
Max7219_pinCS = 5;
Max7219_pinDIN = 7;
*/
LedControl lc=LedControl(7,6,5,1);
unsigned char i;
unsigned char j;
unsigned long delaytime=100;
void setup()
{
lc.shutdown(0,false);
lc.setIntensity(0,8);
lc.clearDisplay(0);
}
void single()
{
for(int row=0;row<8;row++)
{
for(int col=0;col<8;col++)
{
delay(delaytime);
lc.setLed(0,row,col,true);
delay(delaytime);
for(int i=0;i<col;i++)
{
lc.setLed(0,row,col,false);
delay(delaytime);
lc.setLed(0,row,col,true);
delay(delaytime);
}
}
}
}
void loop()
{
single();
lc.clearDisplay(0);
}
[/codesyntax]
Links
chipKIT Uno32
Sunkee MAX7219 Dot matrix module MCU control Display module DIY kit for Arduino