DIY Projects
Published © CC BY

Arduino tutorial: LED Matrix red 32x8 256 Led

Arduino tutorial: LED Matrix red 32x8 256 Led driven by MAX7219 (or MAX7221) and Arduino Uno

BeginnerShowcase (no instructions)1 hour23,883
Arduino tutorial: LED Matrix red 32x8 256 Led

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1
LED Dot Matrix Display, Red
LED Dot Matrix Display, Red
×1
Jumper wires (generic)
Jumper wires (generic)
×10
USB-A to Micro-USB Cable
USB-A to Micro-USB Cable
×1

Software apps and online services

Arduino IDE
Arduino IDE
Bluetooth Terminal HC 05

Story

Read more

Schematics

Daigram

Code

Arduino code

C/C++
#include <LedControl.h>   //inport the library, make sure to install it first
String message ="";       //create an empty string to store the future received data 

 
const int numDevices = 4;      // number of MAX7219s used in this case 4
const long scrollDelay = 60;   // adjust scrolling speed (lower dela -> higher scroll speed)
unsigned long bufferLong [14] = {0}; 
int initial = 0;
LedControl lc=LedControl(11,13,10,numDevices);//D11=DATA, D13=CLK, D10=LOAD //select the used pins 

const unsigned char initialText[] PROGMEM ={"Open App and send text   "}; //This will be the initial displayed text
/*After you send a text using the smartphone (bluetooth) you have to wait till the
last text finish scrooling. Once it finish, your new text will be displayed. */

/*Here we sabe on to the FLASH memory all the characters, icons and symbols.
If we use the SRAM memory we will have problems. */
const unsigned char scrollText0[] PROGMEM ={" "};
const unsigned char scrollText1[] PROGMEM ={"!"};
const unsigned char scrollText2[] PROGMEM ={"''"};
const unsigned char scrollText3[] PROGMEM ={"#"};
const unsigned char scrollText4[] PROGMEM ={"$"};
const unsigned char scrollText5[] PROGMEM ={"%"};
const unsigned char scrollText6[] PROGMEM ={"&"};
const unsigned char scrollText7[] PROGMEM ={"'"};
const unsigned char scrollText8[] PROGMEM ={"("};
const unsigned char scrollText9[] PROGMEM ={")"};
const unsigned char scrollText10[] PROGMEM ={"*"};
const unsigned char scrollText11[] PROGMEM ={"+"};
const unsigned char scrollText12[] PROGMEM ={","};
const unsigned char scrollText13[] PROGMEM ={"-"};
const unsigned char scrollText14[] PROGMEM ={"."};
const unsigned char scrollText15[] PROGMEM ={"/"};

const unsigned char scrollText16[] PROGMEM ={"0"};
const unsigned char scrollText17[] PROGMEM ={"1"};
const unsigned char scrollText18[] PROGMEM ={"2"};
const unsigned char scrollText19[] PROGMEM ={"3"};
const unsigned char scrollText20[] PROGMEM ={"4"};
const unsigned char scrollText21[] PROGMEM ={"5"};
const unsigned char scrollText22[] PROGMEM ={"6"};
const unsigned char scrollText23[] PROGMEM ={"7"};
const unsigned char scrollText24[] PROGMEM ={"8"};
const unsigned char scrollText25[] PROGMEM ={"9"};

const unsigned char scrollText26[] PROGMEM ={":"};
const unsigned char scrollText27[] PROGMEM ={"<"};
const unsigned char scrollText28[] PROGMEM ={"="};
const unsigned char scrollText29[] PROGMEM ={">"};
const unsigned char scrollText30[] PROGMEM ={"?"};
const unsigned char scrollText31[] PROGMEM ={"@"};

const unsigned char scrollText32[] PROGMEM ={"A"};
const unsigned char scrollText33[] PROGMEM ={"B"};
const unsigned char scrollText34[] PROGMEM ={"C"};
const unsigned char scrollText35[] PROGMEM ={"D"};
const unsigned char scrollText36[] PROGMEM ={"E"};
const unsigned char scrollText37[] PROGMEM ={"F"};
const unsigned char scrollText38[] PROGMEM ={"G"};
const unsigned char scrollText39[] PROGMEM ={"H"};
const unsigned char scrollText40[] PROGMEM ={"I"};
const unsigned char scrollText41[] PROGMEM ={"J"};
const unsigned char scrollText42[] PROGMEM ={"K"};
const unsigned char scrollText43[] PROGMEM ={"L"};
const unsigned char scrollText44[] PROGMEM ={"M"};
const unsigned char scrollText45[] PROGMEM ={"N"};
const unsigned char scrollText46[] PROGMEM ={"O"};
const unsigned char scrollText47[] PROGMEM ={"P"};
const unsigned char scrollText48[] PROGMEM ={"Q"};
const unsigned char scrollText49[] PROGMEM ={"R"};
const unsigned char scrollText50[] PROGMEM ={"S"};
const unsigned char scrollText51[] PROGMEM ={"T"};
const unsigned char scrollText52[] PROGMEM ={"U"};
const unsigned char scrollText53[] PROGMEM ={"V"};
const unsigned char scrollText54[] PROGMEM ={"W"};
const unsigned char scrollText55[] PROGMEM ={"X"};
const unsigned char scrollText56[] PROGMEM ={"Y"};
const unsigned char scrollText57[] PROGMEM ={"Z"};

const unsigned char scrollText58[] PROGMEM ={"["};
const unsigned char scrollText59[] PROGMEM ={"]"};
const unsigned char scrollText60[] PROGMEM ={"^"};
const unsigned char scrollText61[] PROGMEM ={"_"};
const unsigned char scrollText62[] PROGMEM ={""};

const unsigned char scrollText63[] PROGMEM ={"a"};
const unsigned char scrollText64[] PROGMEM ={"b"};
const unsigned char scrollText65[] PROGMEM ={"c"};
const unsigned char scrollText66[] PROGMEM ={"d"};
const unsigned char scrollText67[] PROGMEM ={"e"};
const unsigned char scrollText68[] PROGMEM ={"f"};
const unsigned char scrollText69[] PROGMEM ={"g"};
const unsigned char scrollText70[] PROGMEM ={"h"};
const unsigned char scrollText71[] PROGMEM ={"i"};
const unsigned char scrollText72[] PROGMEM ={"j"};
const unsigned char scrollText73[] PROGMEM ={"k"};
const unsigned char scrollText74[] PROGMEM ={"l"};
const unsigned char scrollText75[] PROGMEM ={"m"};
const unsigned char scrollText76[] PROGMEM ={"n"};
const unsigned char scrollText77[] PROGMEM ={"o"};
const unsigned char scrollText78[] PROGMEM ={"p"};
const unsigned char scrollText79[] PROGMEM ={"q"};
const unsigned char scrollText80[] PROGMEM ={"r"};
const unsigned char scrollText81[] PROGMEM ={"s"};
const unsigned char scrollText82[] PROGMEM ={"t"};
const unsigned char scrollText83[] PROGMEM ={"u"};
const unsigned char scrollText84[] PROGMEM ={"v"};
const unsigned char scrollText85[] PROGMEM ={"w"};
const unsigned char scrollText86[] PROGMEM ={"x"};
const unsigned char scrollText87[] PROGMEM ={"y"};
const unsigned char scrollText88[] PROGMEM ={"z"};

const unsigned char scrollText89[] PROGMEM ={"{"};
const unsigned char scrollText90[] PROGMEM ={"|"};
const unsigned char scrollText91[] PROGMEM ={"}"};
const unsigned char scrollText92[] PROGMEM ={"~"};

//We start our setup
void setup(){
  Serial.begin(9600);     //Start the serial comunication fot the bluetooth module
  for (int x=0; x<numDevices; x++){
    lc.shutdown(x,false);       //The MAX72XX is in power-saving mode on startup
    lc.setIntensity(x,8);       // Set the brightness to default value
    lc.clearDisplay(x);         // and clear the display
    }
}

//We start the infinite loop 
void loop(){ 
  //We start scrooling the initial text
  if(initial==0)
  {
    scrollMessage(initialText);
  }
  
  while(Serial.available() > 0) // Don't read unless you receive something new
    {
      message = Serial.readString(); //Store the bluetooth received text
      initial=1; 
    }
  //Go letter by letter and send the dots vector for the LEDs to the drivers
  for (int i=0; i < message.length(); i++)
    {
      if (message[i] == ' ')
        {
        scrollMessage(scrollText0);
        }

        if (message[i] == '!')
        {
        scrollMessage(scrollText1);
        }

        if (message[i] == '"')
        {
        scrollMessage(scrollText2);
        }

        if (message[i] == '#')
        {
        scrollMessage(scrollText3);
        }

        if (message[i] == '&')
        {
        scrollMessage(scrollText4);
        } 
        
        if (message[i] == '%')
        {
        scrollMessage(scrollText5);
        }  

        if (message[i] == '&')
        {
        scrollMessage(scrollText5);
        } 

         if (message[i] == '(')
        {
        scrollMessage(scrollText8);
        }

        if (message[i] == ')')
        {
        scrollMessage(scrollText9);
        }

        if (message[i] == '*')
        {
        scrollMessage(scrollText10);
        }

        if (message[i] == '+')
        {
        scrollMessage(scrollText11);
        }

        if (message[i] == ',')
        {
        scrollMessage(scrollText12);
        }

        if (message[i] == '-')
        {
        scrollMessage(scrollText13);
        }

        if (message[i] == '.')
        {
        scrollMessage(scrollText14);
        }

        if (message[i] == '/')
        {
        scrollMessage(scrollText15);
        }

        if (message[i] == '0')
        {
        scrollMessage(scrollText16);
        }

        if (message[i] == '1')
        {
        scrollMessage(scrollText17);
        } 

        if (message[i] == '2')
        {
        scrollMessage(scrollText18);
        } 

        if (message[i] == '3')
        {
        scrollMessage(scrollText19);
        } 

        if (message[i] == '4')
        {
        scrollMessage(scrollText20);
        } 

        if (message[i] == '5')
        {
        scrollMessage(scrollText21);
        } 

        if (message[i] == '6')
        {
        scrollMessage(scrollText22);
        } 

        if (message[i] == '7')
        {
        scrollMessage(scrollText23);
        } 

        if (message[i] == '8')
        {
        scrollMessage(scrollText24);
        } 

        if (message[i] == '9')
        {
        scrollMessage(scrollText25);
        } 

        if (message[i] == ':')
        {
        scrollMessage(scrollText26);
        } 

        if (message[i] == '<')
        {
        scrollMessage(scrollText27);
        } 

        if (message[i] == '=')
        {
        scrollMessage(scrollText28);
        } 

        if (message[i] == '>')
        {
        scrollMessage(scrollText29);
        } 

        if (message[i] == '?')
        {
        scrollMessage(scrollText30);
        } 

        if (message[i] == '@')
        {
        scrollMessage(scrollText31);
        } 

        if (message[i] == 'A')
        {
        scrollMessage(scrollText32);
        } 

        if (message[i] == 'B')
        {
        scrollMessage(scrollText33);
        } 

        if (message[i] == 'C')
        {
        scrollMessage(scrollText34);
        } 

        if (message[i] == 'D')
        {
        scrollMessage(scrollText35);
        } 

        if (message[i] == 'E')
        {
        scrollMessage(scrollText36);
        } 

        if (message[i] == 'F')
        {
        scrollMessage(scrollText37);
        } 

        if (message[i] == 'G')
        {
        scrollMessage(scrollText38);
        } 

        if (message[i] == 'H')
        {
        scrollMessage(scrollText39);
        } 

        if (message[i] == 'I')
        {
        scrollMessage(scrollText40);
        } 

        if (message[i] == 'J')
        {
        scrollMessage(scrollText41);
        } 

        if (message[i] == 'K')
        {
        scrollMessage(scrollText42);
        } 

        if (message[i] == 'L')
        {
        scrollMessage(scrollText43);
        } 

        if (message[i] == 'M')
        {
        scrollMessage(scrollText44);
        } 

        if (message[i] == 'N')
        {
        scrollMessage(scrollText45);
        } 

        if (message[i] == 'O')
        {
        scrollMessage(scrollText46);
        } 

        if (message[i] == 'P')
        {
        scrollMessage(scrollText47);
        } 

        if (message[i] == 'Q')
        {
        scrollMessage(scrollText48);
        } 

        if (message[i] == 'R')
        {
        scrollMessage(scrollText49);
        } 

        if (message[i] == 'S')
        {
        scrollMessage(scrollText50);
        } 

        if (message[i] == 'T')
        {
        scrollMessage(scrollText51);
        } 

        if (message[i] == 'U')
        {
        scrollMessage(scrollText52);
        } 

        if (message[i] == 'V')
        {
        scrollMessage(scrollText53);
        } 

        if (message[i] == 'W')
        {
        scrollMessage(scrollText54);
        } 

        if (message[i] == 'X')
        {
        scrollMessage(scrollText55);
        } 

        if (message[i] == 'Y')
        {
        scrollMessage(scrollText56);
        } 

        if (message[i] == 'Z')
        {
        scrollMessage(scrollText57);
        } 

        if (message[i] == '[')
        {
        scrollMessage(scrollText58);
        } 

        if (message[i] == '[')
        {
        scrollMessage(scrollText59);
        } 

        if (message[i] == '^')
        {
        scrollMessage(scrollText60);
        } 

        if (message[i] == '_')
        {
        scrollMessage(scrollText61);
        } 

        if (message[i] == 'a')
        {
        scrollMessage(scrollText63);
        } 

        if (message[i] == 'b')
        {
        scrollMessage(scrollText64);
        } 

        if (message[i] == 'c')
        {
        scrollMessage(scrollText65);
        } 

        if (message[i] == 'd')
        {
        scrollMessage(scrollText66);
        } 

        if (message[i] == 'e')
        {
        scrollMessage(scrollText67);
        } 

        if (message[i] == 'f')
        {
        scrollMessage(scrollText68);
        } 

        if (message[i] == 'g')
        {
        scrollMessage(scrollText69);
        } 

        if (message[i] == 'h')
        {
        scrollMessage(scrollText70);
        } 

        if (message[i] == 'i')
        {
        scrollMessage(scrollText71);
        } 

        if (message[i] == 'j')
        {
        scrollMessage(scrollText72);
        } 

        if (message[i] == 'k')
        {
        scrollMessage(scrollText73);
        } 

        if (message[i] == 'l')
        {
        scrollMessage(scrollText74);
        } 

        if (message[i] == 'm')
        {
        scrollMessage(scrollText75);
        } 

        if (message[i] == 'n')
        {
        scrollMessage(scrollText76);
        } 

        if (message[i] == 'o')
        {
        scrollMessage(scrollText77);
        } 

        if (message[i] == 'p')
        {
        scrollMessage(scrollText78);
        } 

        if (message[i] == 'q')
        {
        scrollMessage(scrollText79);
        } 

        if (message[i] == 'r')
        {
        scrollMessage(scrollText80);
        } 

        if (message[i] == 's')
        {
        scrollMessage(scrollText81);
        } 

        if (message[i] == 't')
        {
        scrollMessage(scrollText82);
        } 

        if (message[i] == 'u')
        {
        scrollMessage(scrollText83);
        } 

        if (message[i] == 'v')
        {
        scrollMessage(scrollText84);
        } 

        if (message[i] == 'w')
        {
        scrollMessage(scrollText85);
        } 

        if (message[i] == 'x')
        {
        scrollMessage(scrollText86);
        } 

        if (message[i] == 'y')
        {
        scrollMessage(scrollText87);
        } 

        if (message[i] == 'z')
        {
        scrollMessage(scrollText88);
        } 

        if (message[i] == '{')
        {
        scrollMessage(scrollText89);
        } 

        if (message[i] == '|')
        {
        scrollMessage(scrollText90);
        } 

        if (message[i] == '}')
        {
        scrollMessage(scrollText91);
        } 

        if (message[i] == '~')
        {
        scrollMessage(scrollText92);
        } 
     }      
}
 
//////////////////////////////////////////////////////EDIT THE CHARACTERS///////////////////////////////////////////
 
const unsigned char font5x7 [] PROGMEM = {      //Numeric Font Matrix (Arranged as 7x font data + 1x kerning data)
    B00000000,  //Space (Char 0x20)
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    3,//this number gives the empty space column amount between the characters
 
    B10000000,  //!
    B10000000,
    B10000000,
    B10000000,
    B00000000,
    B00000000,
    B10000000,
    2,
 
    B10100000,  //"
    B10100000,
    B10100000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    4,
 
    B01010000,  //#
    B01010000,
    B11111000,
    B01010000,
    B11111000,
    B01010000,
    B01010000,
    6,
 
    B00100000,  //$
    B01111000,
    B10100000,
    B01110000,
    B00101000,
    B11110000,
    B00100000,
    6,
 
    B11000000,  //%
    B11001000,
    B00010000,
    B00100000,
    B01000000,
    B10011000,
    B00011000,
    6,
 
    B01100000,  //&
    B10010000,
    B10100000,
    B01000000,
    B10101000,
    B10010000,
    B01101000,
    6,
 
    B11000000,  //'
    B01000000,
    B10000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    3,
 
    B00100000,  //(
    B01000000,
    B10000000,
    B10000000,
    B10000000,
    B01000000,
    B00100000,
    4,
 
    B10000000,  //)
    B01000000,
    B00100000,
    B00100000,
    B00100000,
    B01000000,
    B10000000,
    4,
 
    B00000000,  //*
    B00100000,
    B10101000,
    B01110000,
    B10101000,
    B00100000,
    B00000000,
    6,
 
    B00000000,  //+
    B00100000,
    B00100000,
    B11111000,
    B00100000,
    B00100000,
    B00000000,
    6,
 
    B00000000,  //,
    B00000000,
    B00000000,
    B00000000,
    B11000000,
    B01000000,
    B10000000,
    3,
 
    B00000000,  //-
    B00000000,
    B11111000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    6,
 
    B00000000,  //.
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B11000000,
    B11000000,
    3,
 
    B00000000,  ///
    B00001000,
    B00010000,
    B00100000,
    B01000000,
    B10000000,
    B00000000,
    6,
 
    B01110000,  //0
    B10001000,
    B10011000,
    B10101000,
    B11001000,
    B10001000,
    B01110000,
    6,
 
    B01000000,  //1
    B11000000,
    B01000000,
    B01000000,
    B01000000,
    B01000000,
    B11100000,
    4,
 
    B01110000,  //2
    B10001000,
    B00001000,
    B00010000,
    B00100000,
    B01000000,
    B11111000,
    6,
 
    B11111000,  //3
    B00010000,
    B00100000,
    B00010000,
    B00001000,
    B10001000,
    B01110000,
    6,
 
    B00010000,  //4
    B00110000,
    B01010000,
    B10010000,
    B11111000,
    B00010000,
    B00010000,
    6,
 
    B11111000,  //5
    B10000000,
    B11110000,
    B00001000,
    B00001000,
    B10001000,
    B01110000,
    6,
 
    B00110000,  //6
    B01000000,
    B10000000,
    B11110000,
    B10001000,
    B10001000,
    B01110000,
    6,
 
    B11111000,  //7
    B10001000,
    B00001000,
    B00010000,
    B00100000,
    B00100000,
    B00100000,
    6,
 
    B01110000,  //8
    B10001000,
    B10001000,
    B01110000,
    B10001000,
    B10001000,
    B01110000,
    6,
 
    B01110000,  //9
    B10001000,
    B10001000,
    B01111000,
    B00001000,
    B00010000,
    B01100000,
    6,
 
    B00000000,  //:
    B11000000,
    B11000000,
    B00000000,
    B11000000,
    B11000000,
    B00000000,
    3,
 
    B00000000,  //;
    B11000000,
    B11000000,
    B00000000,
    B11000000,
    B01000000,
    B10000000,
    3,
 
    B00010000,  //<
    B00100000,
    B01000000,
    B10000000,
    B01000000,
    B00100000,
    B00010000,
    5,
 
    B00000000,  //=
    B00000000,
    B11111000,
    B00000000,
    B11111000,
    B00000000,
    B00000000,
    6,
 
    B10000000,  //>
    B01000000,
    B00100000,
    B00010000,
    B00100000,
    B01000000,
    B10000000,
    5,
 
    B01110000,  //?
    B10001000,
    B00001000,
    B00010000,
    B00100000,
    B00000000,
    B00100000,
    6,
 
    B01110000,  //@
    B10001000,
    B00001000,
    B01101000,
    B10101000,
    B10101000,
    B01110000,
    6,
 
    B01110000,  //A
    B10001000,
    B10001000,
    B10001000,
    B11111000,
    B10001000,
    B10001000,
    6,
 
    B11110000,  //B
    B10001000,
    B10001000,
    B11110000,
    B10001000,
    B10001000,
    B11110000,
    6,
 
    B01110000,  //C
    B10001000,
    B10000000,
    B10000000,
    B10000000,
    B10001000,
    B01110000,
    6,
 
    B11100000,  //D
    B10010000,
    B10001000,
    B10001000,
    B10001000,
    B10010000,
    B11100000,
    6,
 
    B11111000,  //E
    B10000000,
    B10000000,
    B11110000,
    B10000000,
    B10000000,
    B11111000,
    6,
 
    B11111000,  //F
    B10000000,
    B10000000,
    B11110000,
    B10000000,
    B10000000,
    B10000000,
    6,
 
    B01110000,  //G
    B10001000,
    B10000000,
    B10111000,
    B10001000,
    B10001000,
    B01111000,
    6,
 
    B10001000,  //H
    B10001000,
    B10001000,
    B11111000,
    B10001000,
    B10001000,
    B10001000,
    6,
 
    B11100000,  //I
    B01000000,
    B01000000,
    B01000000,
    B01000000,
    B01000000,
    B11100000,
    4,
 
    B00111000,  //J
    B00010000,
    B00010000,
    B00010000,
    B00010000,
    B10010000,
    B01100000,
    6,
 
    B10001000,  //K
    B10010000,
    B10100000,
    B11000000,
    B10100000,
    B10010000,
    B10001000,
    6,
 
    B10000000,  //L
    B10000000,
...

This file has been truncated, please download it to see its full contents.

Credits

DIY Projects

DIY Projects

11 projects • 21 followers
Student

Comments