Go Down

Topic: General 'concep't of running/controlling large amounts fo leds? (matrix?) (Read 1 time) previous topic - next topic


Im fairly new to embedded electronics/Arduino world in general...

I have played with a few different platforms.. worked with some basic Arduino test projects/code..
used a few external components, switches, sensors, leds, accelerometers...etc

all of this is fairly straight forward stuff..  my strength (more my focus) is code side.. I lack much in hardware/basic electronics knowledge.

I am not asking for 'code'.. or any schematics...etc,... just a general conversation, in laymen terms preferably, about how it works.

if there were 'MANY' leds in a string.. I understand how using one I/O post to control ONE led works..

but when you have say 30 or 60 LEDS you need to control? how do you go about that?

You obviously do NOT have enough I/O pins to control all of the leds directly..

when I have seen an actual example of a led string....it usually in sections..

say 6/8 legs in a 'segment'..then several segments to make a total of "XX" (whatever)

I see/read about people talking about LED maxtirx's..

which Im assuming is where this discussion leads to? (yes)

but before I look at this 8x8, 6x8, 2x8 matrix diagrams...etc terminology, I need to be able to understand and conceptualize what I am reading..

anyone got some kid gloves (and links) to help a thick headed, un-experienced member understand? =)

Thanks guys.


There is an IC max7219, look on data sheet at:


And you can make a search on similar chips by key words.
Hope it will help.


There is a trick called Charlieplexing (Charlie + multiplexing) which allows small number (n) of control pins can control n(n-1) LEDs.
I found this link http://www.instructables.com/id/Charlieplexing-LEDs--The-theory/ from Google search with a keyword 'charlieplexing led,' and found the insctuctable explains this trick quite well.

Hope this helps.  :)


If you look at a part like this
You will see lots of common connections.
If you a single LED on, you drive a left pin high (the anode connections) and a top pin low (the cathode connections).
Want a whole row? Anode high, all cathodes low.
Want a whole column? All anodes high, one cathode low.
Anything else requires switching them in a pattern repeatedly over time.
For instance, a diagonal line.
Switch A1C1, then A2C2, then A3C3, etc. each combination briefly & repeatedly so to the eye it looks they are all on.
Typically one would do something like set the columns, pulse the row on/off, & repeat thru the matrix.
write columns, pulse row 1
write columns, pulse row 2
write columns, pulse row 3
Chips like the MAX7221 do this cycling for you, and also control the current so no external current limit resistors are needed.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Go Up