LED Dot Matrix Display

Picture of LED Dot Matrix Display
In this project, you shall again use two sets of shift registers. These will be connected to the rows and
columns of the dot matrix display. You will then show a simple object, or sprite, on the display and
animate it. The main aim of this project is to show you how a dot matrix display works and introduce the
concept of multiplexing because this is an invaluable skill to have.

Remove these adsRemove these ads by Signing Up

Step 1: Things Required

Picture of Things Required
for this project you will require -:

1. 1  LED matrix
2. 8  resistors 1k ohm
3. 8 557 transistors
4. 1 ULN2803 IC
5  Arduino
6. 2 74HC595 shift register
7. 2 Bread board
8. Connecting Wires

Am I able to use s8050 d331 transistors from Texas Instruments? I got them from a kit and I'm wondering if they will substitute nicely or not?

Electo4fun6 months ago

Good Job :D.

I did this but instead of the letters lighting up the entire matrix lights up and the letters don't.

Ah I fixed it... In the code you must remove the '~'.

zeeroo7 months ago
The picture shows TO-92 NPN transistor but the parts list says 557 wich is PNP
looking at the schematics it should be PNP transistor
right ?
zeeroo zeeroo7 months ago
sorry i meant should be NPN not PNP
petros910 months ago
How much time do the LED lamps need to turn ON? What is the refresh rate?
How much time is it needed to scan a column/row and also to switch from one column/row to another?

Thanks in advance
msemtd petros98 months ago
I haven't read the authors' Arduino code by the way, but I would recommend performing the refresh of each row in a timer interrupt (have a look on the Arduino playground for help on using timer interrupts).

You want to choose a refresh rate that looks smooth to the human eye so something over 50 updates (of the entire display) per second – i.e. 50Hz. Let's say we chose to refresh one row per millisecond. That equates to 1000 row updates per second or 1000/8 full display updates per second on this 8 row display. That is a 125Hz refresh rate.

We could easily halve this rate to a nice smooth 62.5Hz by updating a row every 2 milliseconds (for a 16 pixel high display at 62.5Hz the 1ms is ideal). The duration for which the LEDs are left on during that 2ms row-scan time will dictate how bright the display is!

The Arduino will take a little time to clock the data for each row into the shift register(s). For longer pixel displays the shift registers are chained together and more bits need to be shifted in. Thankfully the 74HC595 has a latch so the data can be clocked in for the next row while the previous row is being displayed on the LEDs!

Smartly coded timer interrupts will allow the Arduino to do other jobs whilst maintaining a solid refresh rate. I will post up some code when I've had a chance to try this out on an Arduino. BTW: on of my jobs is to write firmware for scrolling LED matrix displays :D
layal_11 year ago
Can I do this project but without Arduino ?
if you found this project without using Arduino . could you please help me ??
I have some questions about the parts list, I've been looking at an 8x8 led rgb display on ebay for $6.95 and I'm wondering if the resistor is ULN2803 IC like you said or is it ULN2803A IC like what I've been seeing online. Also, I think you should change the register to resistor in the parts list.
Sorry, I meant to say transistor! :P
ProBodger1 year ago
kapil gupta (author)  ProBodger1 year ago
Thanks buddy !!