Step 3Multi what?
It is basically a way to split information in to little peaces and send it one by one.
this way you can save a lot of pins on the Arduino and keep your program quite simple.
In our case we split the image that we want to display to 10 peaces (10 rows), We want to scan the rows of the matrix( light up one row at a time) and send info from the Arduino to the columns.
All the columns are positives of the LEDs and the rows are negatives so if the first row is connected to ground and we send information to the columns we will only light the first row.
To get a good display we need to scan the rows very fast, so fast the the human eye thinks that all of the rows are connected at the same time.
So why the 4017:
For this LED matrix I wanted to use this useful IC.
Heres a good site to learn the basics of this IC : http://www.doctronics.co.uk/4017.htm
The 4017 decade counter is used to allow multiplexing.
This IC basically scans the rows of the matrix( lights up one row at a time).
In our case we want to connect the rows to ground but the 4017 doesn't build to sink current, so to solve this little problem we need to use a transistor with a resistor.
The 4017 has 10 output pins so we need 10 resistors and 10 transistors, we connect the 1K resistors to the outputs of the 4017 and the base of the transistor to the other end of the resistor.
Then we connect the collectors of the transistor to the rows and the emitter to the ground.
Heres the data sheet of the transistor we need to use : http://www.fairchildsemi.com/ds/2N/2N3904.pdf
The shift register:
This little IC is a very useful one it allows you to control lots of outputs with the use of onlt 3 pins from the micro-controller. By connecting more IC's you can increase the number of outputs with losing more micro-controller pins.
You can read more about them and how to use them with arduino in this link:
http://www.arduino.cc/en/Tutorial/ShiftOut
| « Previous Step | Download PDFView All Steps | Next Step » |















































Might be a stupid question - how exactly do I connect the emitter pins of the transistors to the ground?
First of many thanks for posting great articles. There are some discussions on Arduino forum where many times it has been suggested to use MAX7219/7221 instead of this 595-counter combo. If I understand right, I can select a combination of 74HC595 shift register and 4017 counter OR just pick a MAX7219/7221 IC. Am I right?
Thank you,
Also, are the LEDs being lit up a few at a time, but at high speeds, to form the image, so that there is no conflict between the LEDs that should stay off?
Making a 10X10 matrix will only need a change in the code, if you want I can help you out with the code if you send me your email.
i have a project looking to be at least 10x10 leds maybe 16x16 leds.
i have read you instructions carefully but i cant seem to understand how i would go about this.
i hope to be only using one arduino. so i need some sort of multiplexer or register between the register s and the arduino else i am low on output pins.
so my question is really:
how complicated would it be?
how many registers and multiplexers?
is one arduino too little?
if youve got a lot of sparetime i would of course ask if you would try and draw me a picture but then again i am too humble to ask for such a favor :-)
if i didnt say it i admire the teachers skills by which you tell the guide. its really easy to understand!
b-well
And if you want give me your email and I will send you the big picture on how to go about this thing.
For a 16x16 matrix you will need only 4 shift registers that will use 3 arduino pins :D
well my email is johannesgj tobefoundat gmail.com
thanks!
And luck with your project
dunno just an observation from someone who knows nothing. :)