Electronic – arduino – Shift Register turning on Transistor for LED Cluster

arduinoledmatrix

I have a question concerning using 74HC595 with two transistors to power a LED matrix. My goal is to make an 48 x 8 LED matrix using a cluster of 5 LEDS per unit (as opposed to only using one led as shown in Ref 1). I am having trouble making Ref 2 work with the shift registers and I can't figure out why (I suspect that the shift registers are not supplying enough voltage to switch the transistors. I've attached a simplified schematic. Please let me know what I am doing wrong, thanks!

Parts:
NPN = 2n4401 w/ 1k resistor

Ref 1)
My template for constructing the matrix
http://www.instructables.com/id/48×8-SCROLLING-MATRIX-LED-DISPLAY-USING-ARDUINO-CO/?ALLSTEPS

Ref 2)
My reference for using two transistors
Using an NPN vs a PNP transistor

enter image description here

enter image description here

Best Answer

Look up the voltage drop accros one of your LEDs at reasonable current, then multiply that by 5. That's the voltage that will be accross the string of LEDs when lit.

I don't know what kind of LEDs you are using, but 5 of them is going to require more voltage than the 5 V logic output of the top shift register. Since the top transistor is a emitter follower, you need about 700 mV more. Then figure 200 mV for Q2 in saturation and 2 V accross the resistor (assuming 20 mA desired LED current). Overall you need about 3 V more than the LED string when on.

For example, let's say these are typical green LEDs with a forward drop of 2.1 V at 20 mA. That means there will be 10.5 V accross just the LEDs. From above, that means you'd need about 13.5 V into the base of Q1 to light the string of LEDs.

The simplest solution is to make the high side switch a PNP and use another transistor to drive that from the logic signal.