Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
Electrodude
Published © LGPL

How to Make DIY LED DOT MATRIX MODULE from Scratch

LED Dot Matrix modules are an excellent way to display information in a compact and visually appealing way. These modules consist of a mat

BeginnerFull instructions provided1 hour3,747

Things used in this project

Hardware components

MAX7219 IC
×1
Resistor 10k ohm
Resistor 10k ohm
×1
Ceramic Suppression Capacitor, 0.01 ยตF
Ceramic Suppression Capacitor, 0.01 ยตF
×1
10uf
×1
Male/Female Jumper Wires
Male/Female Jumper Wires
×1
Arduino Nano R3
Arduino Nano R3
×1
LED (generic)
LED (generic)
×1
6-pin Header & Gender Changer (5-pack)
Digilent 6-pin Header & Gender Changer (5-pack)
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Solder Flux, Soldering
Solder Flux, Soldering

Story

Read more

Custom parts and enclosures

PCB 3D Layout

Schematics

Schematic and PCB Layout

Code

Simple Example

C/C++
//LED 8x8 Matrix Display DEMO
#include <LedControl.h>
int DIN = 10;
int CS =  9;
int CLK = 8;
LedControl lc=LedControl(DIN,CLK,CS,0);
void setup(){
lc.shutdown(0,false);       
lc.setIntensity(0,15);      //Adjust the brightness maximum is 15
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};
   byte sad[8]=   {0x3C,0x42,0xA5,0x81,0x99,0xA5,0x42,0x3C};
   byte arrow_up[8]= {0x18,0x3C,0x7E,0xFF,0x18,0x18,0x18,0x18};
   byte arrow_down[8]= {0x18,0x18,0x18,0x18,0xFF,0x7E,0x3C,0x18};
   byte d1[8]= {0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55};
   byte d2[8]= {0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA};
   byte b1[8]= {0x00,0x00,0x00,0x00,0x18,0x3C,0x18,0x3C};
   byte b2[8]= {0x00,0x00,0x00,0x18,0x3C,0x18,0x3C,0x00};
   byte b3[8]= {0x00,0x00,0x18,0x3C,0x18,0x3C,0x00,0x00};
   byte b4[8]= {0x00,0x18,0x3C,0x18,0x3C,0x00,0x00,0x00};
   byte b5[8]= {0x18,0x3C,0x18,0x3C,0x00,0x00,0x00,0x00};
   byte b6[8]= {0x3C,0x18,0x3C,0x00,0x00,0x00,0x00,0x18};
   byte b7[8]= {0x18,0x3C,0x00,0x00,0x00,0x00,0x18,0x3C};
   byte b8[8]= {0x3C,0x00,0x00,0x00,0x00,0x18,0x3C,0x18};
   printByte(b1);
   delay(50);
   printByte(b2);
   delay(50);
   printByte(b3);
   delay(50);
   printByte(b4);
   delay(50);
   printByte(b5);
   delay(50);
  printByte(b6);
   delay(50);
   printByte(b7);
   delay(50);
   printByte(b8);
   delay(50);
   printByte(d1);
   delay(100);
   printByte(d2);
   delay(100);
   printByte(arrow_up);
   delay(2000);
   printByte(arrow_down);
   delay(2000);
   printByte(smile);
   delay(1000);
   printByte(neutral);
   delay(1000);
   printByte(sad);    
   delay(1000);
}
void printByte(byte character [])
{
 int i = 0;
 for(i=0;i<8;i++)
 {
   lc.setRow(0,i,character[i]);
 }
}

Credits

Electrodude

Electrodude

4 projects โ€ข 5 followers
Hey, I am Electro dude ๐Ÿ˜Ž. In this channel, I make videos on DIY projects, electric & electronic projects & also review some products.

Comments