# Basic PNP transistor on a microprocessor output pin

I have a 5v microprocessor that needs a PNP transistor between it and the common anode of an LED display, as it can't source enough current to drive all of the LED's without burning up. I understand in principle how the transistor connects, but seeing as I'm a computer programmer and not an electrical engineer, I'm having a little trouble finding the exact part number or specifications that will work in this application (all this talk of bias voltage, forward and reverse biasing, etc. has me thoroughly stuck). The display should suck around 400 mA through the transistor, worst case, and everything runs on 5 volts. Lastly, will I need any resistors (aside from the LED resistors) on the transistor and if so, how do those work?

-
Again, sorry if this is a really basic question, but I'm just getting into EE by teaching myself, and I've had trouble forming a coherent answer by looking at the 'net. Thanks for any help! –  Chris Aug 24 '12 at 19:56

What you want is something like this:

except that the parts for individual LEDs will be replicated 16 times instead of just 4 as shown.

Since you have 16 LEDs each drawing 20 mA, the total current when all are on at the same time is 320 mA. R1 will cause about 10 mA base current in Q1 when the processor drives the common enable line low. That means the transistor needs to have a gain of at least 32, which this transistor can do. The other transistors are only handling the current for individual LEDs, which is 20 mA, so don't need as much base drive. That is why R2-R5 can be larger than R1.

R6-R9 are sized so that after a little voltage drop in the anode and cathode transistors, about 20 mA should flow thru the LEDs if they are normal green ones. Red LEDs have a little lower voltage drop, so you may need a little higher series resistor.

-
Perfect! Exactly what I was looking for, part numbers, values and all. Thanks! –  Chris Aug 25 '12 at 5:22
In your answer you have a bar over the COMMON_ENABLED, are you saying to enable the LEDs the COMMON_ENABLED but be low? –  Dean Aug 26 '12 at 16:31
@Dean: Yes, by convention a bar indicates negative logic. In that case that means the line must be low to enable the common side of the LEDs. I could have named it COMMON_DISABLE and left off the bar. –  Olin Lathrop Aug 26 '12 at 16:52

Kind of hard to tell what you're looking for from your question... do you have an array of LEDs?

This is the basic schematic for using a PNP transistor to power an LED from a microcontroller pin.

The idea is that the microcontroller only has to provide the control signal on the base of the transistor while the main draw comes from the power supply (the +V in the schematic above) through the transistor.

As far as calculating values for the resistors, it depends on so many variables you didn't give us including but not limited to: forward-bias voltage drop of your LED (Vf) and the recommended on current of the LED (Id). Please provide more information about your setup so we can answer your question better.

You might also want to research multiplexing and charlieplexing to see if they would help with your project. They allow lower power draw and less pin usage on your microcontroller for large displays.

-
Yes, it's an array of LED's in parallel, with a common anode. 16 segment LED display, each segment with ~20mA forward current each, 2.0V forward voltage drop. I've multiplexed each display digit together, however the common anode restricts my options, and leads to this problem - all 16 segments have to be sourced from one micro pin. Thank you for the schematic :) given the new info, can anyone suggest a value / part # for the transistor? Thanks! –  Chris Aug 24 '12 at 20:27