12V 7 segment LED display

You could lose 1.6 to 1.8V across the PNP drive transistor
From the UDN2981 datasheet page 3, for instance,
Collector-Emitter Saturation Voltage

which could mean not all of the LEDs in a segment turning on.

With multiple segments and the NPN on the cathode, this could be a lot less drop. WIth N-channel MOSFET, even smaller.

I was assuming using a multiplex driver. The arduino can only drive up to 5v at 20ma per output. That's why you need external drivers for a 12v display. The anode driver which is connected to the 12v line would use a PNP transistor driven to saturation to control the 12v to the anodes of the display. The NPN predriver inverts the logic and protects the arduino from the 12v present needed to turn OFF the PNP transistor. The cathode drivers switch the display cathodes to ground and probably won't see more than 5v so they could be driven directly by the arduino unless more than 20ma of current is required. In a common anode display this might work, but in a common cathode display an NPN transistor would be needed driven by the arduino to handle more than one segment's current. The SEGMENT drivers have the current limiting resistors, the DIGIT drivers do not. I don't think you would have a problem with uneven lighting of the segments in a multiplexed scheme with external transistors handling the extra voltage/current. Those IC display drivers are bipolar transistors inside don't forget. (Some us darlington connected transistors to reduce the drive and you can use external discrete darlington transistors as well).

You probably do need to use a high enough driver VCC supply voltage to account for the emitter-collector sat voltage in both the anode and cathode drivers, the display forward voltage, and what's lost in the current limiting resistors. Also the current limiting resistors have to dissipate the required power.

There is a nice little Buck Mode Switcher that will handle 2A from Ebay @ http://www.ebay.com/itm/260858526297?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_2466wt_1168
It Will take 12 Vdc in and put out whatever lower voltage you might require. @ 98% Eff. and at a 2A load @ 5V the switcher losses would be about 200 Mw... 2% of 10 W (5V x 2A = 10W) = .2 W
This and a 5V shift register or two (74C595's) chain up nicely with 3 wires to whatever driver you might choose. The nice part is they only cost $1.94 so if you are worried about total power dissipation then use several,
they are certainly cheaper and easier to find than the High Current level translating drivers (12V outputs to 5V logic).

Doc

I think you've missed the point Docedison.

Large displays, such as

need 12V to drive the 5 & 6 LEDs in series that make up a segment.
(altho this sparkfun example is common anode, not common cathode).

So a 12V source needs to be controlled.
One way is to divert the current from segments to turn them off, as I drew up, and to let the current flow to turn them on.

Another way is to switch the voltage on and off at the anode using either as PNP transistor or a P-channel MOSFET.
P-channel transistors, such as those used in UDN2981, have a large voltage drop across them, so Source voltage of 12V + Vce needs to be available.
I don't know of P-channel mosfet arrays, thus you need individual parts - and an NPN transistor to drive the gate. The NPN base can go 0/5V to turn it on/off, allowing the P-channel gate to swing 0/12V to let it turn on & off.

Hi, I have now built a circuit based on the TPIC6B595 to drive the common cathode displays. The first attempt worked in that it displayed the numbers correctly but the resistors goot too hot when the segments were not on !!! Each digit, fully illuminated, drew about 125mA (each segment draws about 15mA when on) - when all the segments were off the current jumped right up to about 1.5A - lots of heat coming off those 100R resistors.

The next attempt was very similar but using the TPIC6B595 to switch 2N7000G mosfets - I guess the theory is right but something is wrong in my circuit because it just doesn't want to play.

I have seen some circuits with a 100nf ceramic cap across the TPIC6B595 (connected to VCC & GND?).... decoupling? and a resistor on the common cathode/anode line on the digits - I don't know if adding either of these will help?

This is what I have done.....

Yeah about 10 minutes after I posted that worthless reply I figured it out... I do apologize. You made a comment about resistors getting hot as well as drawing 1.5 A when all displays are off... Did you ever post a drawing of what you are doing/trying to do and have you checked your thinking about it... electronics equipment doesn't usually draw excessive current when quiescent, it is usually the other way around, that UDN29XX device has a good deal of open voltage across it but should drop to nearly 0 volts when on (Across the switch fet or transistor) the diodes and connection to Vsupply Led is for back EMF protection, diodes that are in effect across the load to Vsupply Led (They are for solenoids or relays usually) but should work well in your application. IMO

Doc

Your circuit is not correct. Try it like this.
TPIC6B595 can not drive high, need a pullup resistor to turn off the P-channel MOSFET that sources current into the anodes of the segment.
N-channel MOSFET is not the right part.

Thank Crossroads,

Could I ask what part you would recommend for the p channel MOSFET and how I figure out the value and power rating of the pullup resistor.... Thanks again

Pullup resistor is not critical, 5K probably plenty.
P=V^2/R = well under 1/8W.

P-channel MOSFET - see whats affordable:

Your "P Channel" Mosfet is turned on all the time. If the gate cannot go to the source voltage, it cannot turn off. A P channel Mosfet is turned on by pulling the gate below the source voltage. In this case the Vcc for the selector chip is 5 volts and the Source voltage for the Mosfet is 12 Volts therefore the gate is always at -7 volts in the off state (relative to the source voltage thus fully enhanced or turned on as Vgth is about -2 / -3 volts. I would suggest you draw an accurate schematic and carefully analyze each part as to function. If you wanted to turn on the P Channel Mosfet from the 5 Volt logic you are using then you need an NPN transistor (a 2N3904 is ok), collector through a 10K resistor to the gate of the Mosfet, emitter to ground, leave the pull-up you have on the gate as Mosfets don't suffer from the base emitter leakage that bipolar transistors do but the gate is very a very high impedance input and must be protected from external leakage and noise from other circuitry so a pull-up is required. Use a 10 K base resistor to the '595 output pins and when a selected output goes high it will pull down the gate down and turn on the Mosfet placing the source bias voltage on the drain. You could of course use an N channel Mosfet in place of the NPN transistor, a 2N7000 would work well but there is no electrical requirement for a Mosfet. Your schematic has some serious errors in it's logic. IMO

Doc

Hi Doc, Thanks for your input - would you mind drawing your circuit so I can test it out :slight_smile: (parts to hand are the 2N7000G & TPIC6B595)

The TPIC6B595 is an open drain output.
The Gate of the MOSFET will thus be 12V from the pullup resistor, and turned off, or ~0V from the TPIC6B595, and turned on.
No other transistor is needed.

Thanks crossroads, I have now ordered some 2N4403 P type transistors to try. Can I check I have read the diagram right: drain to 12v, source to segment and gate to shifter/ pulled up to 12v via 5k resistor. Thanks, will let you know how I get on.

Okay, thats not a P-channel MOSFET, that is a PNP transistor.
http://www.fairchildsemi.com/ds/2N/2N4403.pdf
Wire it up like figure 1 - connect 12V where it shows ground and the LED string to where it shows -30V.

I went for a non-MOSFET as P type mosfets seem to be about 10x more expensive and rare in a TO92 package (what I have space for) - hoping it will work.

Figure 1 shows a 50R resistor going from gate to GND.... What value should i use and would it go to GND or 12v? Thanks for pointing me in the right direction.

I'm thinking something that the shift register won't have to sink as much current thru.
Try a 1K to 12V and see how it goes. If the LEDs are not turning full off when the Gate is high, then go a little smaller.

Hi - well good news in that the segments turn on as expected :-)... from there less good. The code is simply counting from 0-9 with a 1 second delay - first time round fine but the segments never go out they just very slowly fade away (over many seconds) - resetting the arduino doesn't reset the digit so the only way to clear the digit is to power the arduino and digit down and start again? Any idea what could be wrong?

point5:
Hi, I have been looking around for a nice solution to driving 3no. large 7 LED segment displays @ 12V and came across this thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1212882269/15 - the last post in the thread is very neat so happy to have found a good solution I headed out to find some Allegro 6278EAT chips for the project..... only to find they are out of production :frowning:????? ??? ????????? ????? ?????????? ????????? ????? ????? ????? ????? ??? ????? ?????????? ???????? ???????? automasys.wordpress.com ????? ?????????????? ???????? ???? ????? ?????? AVR ARM LPC STM32 PIC dsPIC 8051 8086 z80 ????? ???????? ? ?????? ??ARM AVR PIC MicroController Electronic Project GPRS GSM USB BlueTooth Ethernet Network CAN I2C SPI RS485 Automation PLC ????? ????????? ??????????? ??? 8051 ???? ?????? ???????? Interface ???????? ?????? ??????? Visual Studio 2010 C# VB.Net Protel DXP Altium Eagle PCB SPICE PSPICE HSPICE ADS OrCAD Silvaco
I'm wondering if anyone can suggest an alterntive chip or an equally nice solution to the problem....

I suggest using ULN or UDN drivers or for better performance MBI LED driver series.

Lower the resistance on the PNP gate pullups - that should turn the current off better.
What are you using now?

Thanks - my first attempt was 1K, just tried 560R which had a similar result - how low can I go before I break something?