SparkFun Forums 

Where electronics enthusiasts find answers.

Your source for all things Atmel.
By unebonnevie
#68032
Hi,

First of all, my apologies for not having drawn up a diagram yet.

In my previous post (see here), I successfully drive 8x8 LED matrix using one 74HC595 to drive common anode rows, one 74HC7014 decade counter, whose outputs are connected to the ULN2803A (transistor array), to drive the common cathode columns.

Because my LED matrix is bi-color, meaning two sets (one for green and one for red) of common cathodes for each column, I want to change the above design to have two HC595 ICs to drive the common cathode columns and the common anode rows now are now driven by the HC4017.

My ultimate goals are:

-Control the common cathode columns (green and red) via the two HC595, so that I can light up a dot in the matrix as green, red, or yellow. Yellow happens when both green and red voltages are applied.

-With the 4017 driving the rows, I can add more LED matrices, so that, with the help of the transistors, the 4017 can drive multiple rows on each clock pulse.

My previous working solution prevents me from accomplishing the above goals.

Anyway, below is my new design. :-)

At the moment, I still use only one HC595 just to drive the red columns. (Later, I will add another HC595 once I get things to work, which is not at the moment.)

Each output of the 8 outputs from the 4017 is connected to the Base of the 2N2222 NPN transistor, whose emitter to grounded and whose collector is wired to a common anode row of the LED matrix. My questions for this part are: I noticed that I have connect the collector wire between a current limiting resistor, which is connected to the common anode row, and the wire that goes to the Vcc, the 5V DC power supply. Is that correct? It does seem so, because the LEDs are light up brightly, but I don't want a row to be turned on unless the transistor is turned on. So, I am not that all the rows should be connected to the Vcc before hand.

For the common cathode column(s). For now I only deal with the green columns, thus using only one HC595 as mentioned above. I connect the 8 outputs of the HC595 to the 8 inputs of the ULN2803A. Then the outputs of the ULN3803A are connected to the command cathode columns. Each of the HC595 output gives about 35mA. Does this connection seem correct?


Thank you for any tips/advice on the able. I am not quite sure of the above approach.
User avatar
By bigglez
#68040
unebonnevie wrote:First of all, my apologies for not having drawn up a diagram yet.
Pity. Its very hard to follow your written instructions,
I'm not at all sure how you have this wired up.

An NPN (2N2222) can't be used as a high-side driver
(except as a common-collector stage). From your
description it might be in shunt with the LED matrix.
It would be better to use a high-side driver to drive
the LED matrix instead of shorting it out.

Why are you not using PMOSFets? They are very easy
to drive from the uC or logic level signals. You probably
don't need both SRs and a transistor array if low-side
FETs were used instead.
By unebonnevie
#68072
It would be better to use a high-side driver to drive
the LED matrix instead of shorting it out.
Example of high-side driver that is not PMOSFets? (I take you meant "high-side" being the common anode rows of the LED matrix.)
User avatar
By leon_heller
#68075
Maxim makes chips specifically for that sort of application. They will save a great deal of design effort and board space.

Leon
By Liencouer
#71596
I've done something similar to this. I used 3 HC595's ('cause I had 3). You use 2 of the 595's to drive the led specific anodes, and you use the last to drive the common cathodes. Put the current limiting resistors on the anodes. This requires more resistors, but you don't have to worry about the brightness of the leds changing as a function of leds lit per cathode. You also need less powerful resistors if you put them on the anodes.

I've built this, it does work. Somewhere I have a picture (I think). If you're still working on this, I could use an excuse to actually document it.