Continue to Site

# 12V 5 digit 7 Segment LED driver circuit

#### raffy0991

##### Newbie level 5
Hi Guys,

I am making a LED driver circuit for a 12 V LED array 5 digit 7 segment display Common Cathode. My input is from an Arduino which is 5v. So I need to create a LED driver and I have some ideas like creating a darlington pair and also the ULN2803A. However, I have only basic idea on electronics especially in transistors and IC and stuff. I need your help here is my initial simulation from Proteus but it does not turn on the LED. I used 2n2222 (NPN) and 2n5401 (PNP) since these are the only available transistors I have and I have plenty of these. Please check if I have done wrong on this circuit. I am also planning to use ULN2803A but I still have no Idea yet how to use it on a common cathode display with 12v power supply and input of 5v. Is it possible?

Hopefully you could help me guys.

Thank you

The first thing that jumps out at me is you’ve got 7 LEDS in series. If their forward voltage is 2 volts, they’ll never turn on. Are you saying the actual circuit doesn’t work or the simulation? The bottom of R4 says “V=FLT”, what does that mean?

Design of a LED driver starts with a specfication of segment voltage and current. The circuit might work, depending on this parameters. As stated by barry, if the segement is made of 7 series connected LEDS which might be the case for very large (>= 3") displays, you need higher supply voltage than 12 V.

Regards, Dana.

Last edited:

The first thing that jumps out at me is you’ve got 7 LEDS in series. If their forward voltage is 2 volts, they’ll never turn on. Are you saying the actual circuit doesn’t work or the simulation? The bottom of R4 says “V=FLT”, what does that mean?
Hi,

I don't also know why the R4 is V= FLT I am new to proteus and i just wanted to simulate the circuit here. I also checked the forward voltage it is 2.2 V for each LED. I reduced it to 3 but it still does not work.

Design of a LED driver starts with a specfication of segment voltage and current. The circuit might work, depending on this parameters. As stated by barry, if the segement is made of 7 series connected LEDS which might be the case for very large (>= 3") displays, you need higher supply voltage than 12 V.
During my testing in real life the LED array 7 segment works with direct 12v power supply. I just don't know how to make it work here in proteus. My question is my transistor and resistance values are they correct?

Start with the display. Lets assume segment current is 10 mA (remember to use
in following your specific display value). The 2N3904 wants to be saturated
as a switch. Now assume there is a test mode display does with all segments
on. Lets assume 8 segments.

So 10 mA X 8 = 80 ma in 2N3904 collector. Rule of thumb to sat the 2N3904
drive Ib = Ic(max) / 10 = 8 mA.

Now look at Vouthigh on Arduino with ~ 8 mA coming out of pin.

So we will use the 5V VCC, above values show for atmega328. So at 20 mA the
output will be at least 4.2V.

So Rbase (2N2904) = (4.2 - .7 Vbe) / 8 mA= ~ 440 ohms.

Segment R's : Rseg = (Voh - Vsegment - Vsat3904) / Isegment
Vsat3904 is ~ .35V, Voh =~ 4.2V, Vsegment you get from display datasheet.

Do your best to use worst case numbers over T and V to get adequate margin and minimize power.

Regards, Dana.

Last edited:

I reduced it to 3 but it still does not work.
3 is not a reduction from 2.2.

During my testing in real life the LED array 7 segment works with direct 12v power supply.
What make's you think that your LED display is correctly represented by 7 series connected LED? Very unlikely.

However, you still didn't mention a display type or a specification. Come back with some info.

Common anode would have let you use commonly available open-collector /
open drain low side switches. Probably could find an octal, certainly a quad,
meant for automotive use. There used to be ULN20xx part family, not sure if
anyone makes them anymore (20V - 40V bipolar parts). Must be some, given
the electronics load of modern cars.

There's probably then also quad / octal high side switches that will take a
"TTL" input and work OK off 3.3V - lower might be flaky at -40C industrial,
but who sits around in -40C conditions to read LED panels?

Simplest discrete solution is probably 2 resistors, NPN and PNP per channel.
You could pick off prices from distributors and decide whether a discrete or
an integrated driver fits your BOM cost. board size targets.

Start with the display. Lets assume segment current is 10 mA (remember to use
in following your specific display value). The 2N3904 wants to be saturated
as a switch. Now assume there is a test mode display does with all segments
on. Lets assume 8 segments.

So 10 mA X 8 = 80 ma in 2N3904 collector. Rule of thumb to sat the 2N3904
drive Ib = Ic(max) / 10 = 8 mA.

Now look at Vouthigh on Arduino with ~ 8 mA coming out of pin.

View attachment 183747

So we will use the 5V VCC, above values show for atmega328. So at 20 mA the
output will be at least 4.2V.

So Rbase (2N2904) = (4.2 - .7 Vbe) / 8 mA= ~ 440 ohms.

Segment R's : Rseg = (Voh - Vsegment - Vsat3904) / Isegment
Vsat3904 is ~ .35V, Voh =~ 4.2V, Vsegment you get from display datasheet.

View attachment 183748

Do your best to use worst case numbers over T and V to get adequate margin and minimize power.

Regards, Dana.
Hi I have tried to create my circuit. this is the circuit i created in proteus using 2N2222 and 2N5401 (readily available to my desk). This works fine in proteus however I tried it in actual and it doesn't work. (The LED in proteus have forward voltage of 1.8V x 6 and 20mA)

The LED keeps turning on even if no 5v supply in the base of 2n2222. (note: all the resistors have change because I played with different resistor values because I thought it would solve the problem). I checked the 2n2222 circuit, without the 2n5401 circuit, the switching of 2n2222 has no problem it turns on the LED when i supplied 5V to its base. Now, I also tried 2n5401 circuit, without the 2n2222 circuit, before I could put the resistor to ground and touch the leg of the resistor the LED will turn on (as shown on the picture). I think there is a problem with my 2n5401 circuit and I don't know how to solve it.

What make's you think that your LED display is correctly represented by 7 series connected LED? Very unlikely.

However, you still didn't mention a display type or a specification. Come back with some info.
I do not have the specification of the LED array since it is an old display which will be repairing. But there is 6 LEDs in a segment (7 segments) and there are 5 digits. I am assuming that the forward voltage is 1.8 v and when I tested one digit with all the segment is on the current is 150 mA.

Common anode would have let you use commonly available open-collector /
open drain low side switches. Probably could find an octal, certainly a quad,
meant for automotive use. There used to be ULN20xx part family, not sure if
anyone makes them anymore (20V - 40V bipolar parts). Must be some, given
the electronics load of modern cars.

There's probably then also quad / octal high side switches that will take a
"TTL" input and work OK off 3.3V - lower might be flaky at -40C industrial,
but who sits around in -40C conditions to read LED panels?

Simplest discrete solution is probably 2 resistors, NPN and PNP per channel.
You could pick off prices from distributors and decide whether a discrete or
an integrated driver fits your BOM cost. board size targets.
I am sorry for the wrong information I have tested the LED display and it is a common cathode. The segment pins are positive while the digit pins are connected to negative when I tested it. I believe I can use udn2981 or something to drive the LED array but currently I am trying transistors 2n2222 and 2n5401 since these are readily available.

I tried siming this circuit with various 2N5401 spice models, something is wacky,
part never turns on like it should. Almost like the models for it C couple the base.
With a generic PNP circuit runs fine as shown below.

Regards, Dana.

Hi,

your last photo is is 2318 kBytes in file size.
How much of the 2318 kBytes are useful?

cut out: 80 kBytes (3.45%)
.. not missing anything useful

reduced pixel rate and color depth: 6k Bytes (0.26%)
still not missing anything useful
So wouldn´t you agree that 99.74% of your given information is useless?

Text: 0.036 kBytes (including stars and line feeds, 0.0016%)

***
BR
N5401
B z491
***

Now some claim not to have a fancy photo editing tool:

Especially for you I used the more than 20 years old "photo editor" coming free with Windows.
I takes about 15 seconds to get to the 6 kBytes small result.

You may use some tools like "irfanview" where you can use a command line to automatically reduce pixel rate and color depth. Takes just a button press and some milliseconds.

Or you may use online tools that also do the same without the need for installing software on your PC / cell phone.

Klaus

I tried siming this circuit with various 2N5401 spice models, something is wacky,
part never turns on like it should. Almost like the models for it C couple the base.
With a generic PNP circuit runs fine as shown below.

View attachment 183797

Regards, Dana.
But in proteus it can be simulated but on the actual implementation there is problem like the LEDs always turns on even if 0v is applied to 2n2222. I think my transistor 2n5401 have a problem or maybe wrong pin connection because it is BR N5401 not 2N5401 I don't know if they are the same.
--- Updated ---

Hi,

your last photo is is 2318 kBytes in file size.
How much of the 2318 kBytes are useful?

cut out: 80 kBytes (3.45%)
.. not missing anything useful
View attachment 183798

reduced pixel rate and color depth: 6k Bytes (0.26%)
still not missing anything useful
So wouldn´t you agree that 99.74% of your given information is useless?
View attachment 183799

Text: 0.036 kBytes (including stars and line feeds, 0.0016%)

***
BR
N5401
B z491
***

Now some claim not to have a fancy photo editing tool:

Especially for you I used the more than 20 years old "photo editor" coming free with Windows.
I takes about 15 seconds to get to the 6 kBytes small result.

You may use some tools like "irfanview" where you can use a command line to automatically reduce pixel rate and color depth. Takes just a button press and some milliseconds.

Or you may use online tools that also do the same without the need for installing software on your PC / cell phone.

Klaus
sorry about that. this is noted.

Hi,
But in proteus it can be simulated but on the actual implementation there is problem like the LEDs always turns on even if 0v is applied to 2n2222. I think my transistor 2n5401 have a problem or maybe wrong pin connection because it is BR N5401 not 2N5401 I don't know if they are the same.
Please be as exact as possible:
0V/5V is not applied to the base, but on the other side of the base_resistor.

To this "turns on problem" please show your simulation schematic with the voltages at all nodes.

Klaus