DIY GUY Chris
Published © Apache-2.0

DIY Customized 8x8 LED Matrix Tutorial (MAX7219 Meets Arduin

In this step-by-step tutorial, we're diving into the world of electronics and microcontrollers to create a personalized 8 by 8 LED matrix

BeginnerFull instructions providedOver 1 day436
DIY Customized 8x8 LED Matrix Tutorial (MAX7219 Meets Arduin

Things used in this project

Hardware components

MAX7219/MAX7221 LED Display Drivers
Maxim Integrated MAX7219/MAX7221 LED Display Drivers
×1
LilyPad LED White (5pcs)
SparkFun LilyPad LED White (5pcs)
×1
Arduino Nano R3
Arduino Nano R3
×1
JLCPCB Customized PCB
JLCPCB Customized PCB
×1

Software apps and online services

Circuit Maker
CircuitMaker by Altium Circuit Maker

Hand tools and fabrication machines

Hot Air Station, Industrial
Hot Air Station, Industrial
Hot Plate, 800 W
Hot Plate, 800 W
Solder Paste, Rework
Solder Paste, Rework
Solder Wire, Lead Free
Solder Wire, Lead Free

Story

Read more

Schematics

Matrix schematic

Schematic

Code

DOTS_test.ino

Arduino
This is the code that I used
#include "LedControl.h"

LedControl lc=LedControl(11,13,10,1);

byte digits[10][8]={{B00111100,B01111110,B11100011,B11010011,B11001011,B11000111,B01111110,B00111100}, //0
                   {B00000000,B00010000,B00110001,B01100001,B11111111,B11111111,B00000001,B00000000}, //1
                   {B00000000,B01001110,B11011011,B11011011,B11011011,B11011011,B01110010,B00000000}, //2
                   {B00000000,B01000010,B11011011,B11011011,B11011011,B11011011,B01111110,B00111100}, //3
                   {B00000000,B01111000,B11111100,B00001100,B00001100,B01111110,B11111111,B00000000}, //4
                   {B00000000,B01110010,B11111011,B11011011,B11011011,B11011111,B01001110,B00000000}, //5
                   {B00000000,B01111110,B11111111,B11011001,B11011001,B11011111,B00001110,B00000000}, //6
                   {B00000000,B01000011,B11000110,B11001100,B11011000,B11110000,B11100000,B11000000}, //7
                   {B00000000,B01100110,B11011011,B10011001,B10011001,B11011011,B01100110,B00000000}, //8
                   {B00000000,B00110000,B01111010,B11011011,B11011011,B01110011,B00111110,B00000000}};  //9

byte cross[2][8]= {{B00011000,B00011000,B00011000,B11111111,B11111111,B00011000,B00011000,B00011000},
                  {B11000011,B11100111,B01100110,B00111100,B00111100,B01100110,B11100111,B11000011}};

byte heart[8]={B01111000,B10000100,B11000010,B01100001,B11000010,B10000100,B01111000,B00000000};
void setup() 
{
  lc.shutdown(0,false);
  lc.setIntensity(0,1);
  lc.clearDisplay(0);
}

void loop() 
{ 
  for (int i=0; i<10; i++)
  {
    for (int j=0; j<8; j++)
    {
      lc.setRow(0,j,digits[i][j]);
    }
    delay(500);
  }
  for(int k=0; k<20; k++)
  {
  for (int i=0; i<2; i++)
  {
    for (int j=0; j<8; j++)
    {
      lc.setRow(0,j,cross[i][j]);
    }
    delay(100);
  }
  }
while(1)
{
  for (int j=0; j<8; j++)
  {
    lc.setRow(0,j,heart[j]);
  }
  for (int i=0; i<16; i++)
  {
    lc.setIntensity(0,i);
    delay(50);
  }
  for (int i=15; i>=0; i--)
  {
    lc.setIntensity(0,i);
    delay(50);
  }
}
}

Credits

DIY GUY Chris

DIY GUY Chris

49 projects • 336 followers
I'm having fun while making electronics projects, I am an electrical engineer in love with "Do It Yourself" tasks.

Comments