Driving large 7-segment displays - Page 1
Forum section: electronics / projects

author: mpicker21
author_rank: Contributor
timestamp: March 04, 2017, 12:35:24 am
content: I am looking for a way to drive handmade 7-segment displays. I've driven small ones before with ICs like the old SAA1064 and even just shift registers but now I want to drive larger ones. Each segment is made up of 16 3mm LEDs. Ideally I would drive them in series (vs. parallel) to improve the brightness uniformity but that would require 48 or more volts (LED dependent). I found the MAX6971 that could drive up to 36V. If I split the segment into two sets of 8 LEDs I could use two channels to drive them equally. That would require one driver for ach of the 9 digits I want to drive. Is there a better way to do this? Thanks in advance.

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: March 04, 2017, 12:43:03 am
content: Without knowing the current you want to drive, it's hard to answer, but the good oldhttps://www.sparkfun.com/products/312comes to mind.

author: james_s
author_rank: Super Contributor
timestamp: March 04, 2017, 12:48:11 am
content: How about something like the 2N3904? Use a string of 74HC595 shift registers controlling a transistor for each segment.

author: oPossum
author_rank: Super Contributor
timestamp: March 04, 2017, 12:54:04 am
content: TPIC6C595http://www.ti.com/lit/ds/symlink/tpic6c595.pdf

author: mpicker21
author_rank: Contributor
timestamp: March 04, 2017, 12:58:17 am
content: Yeah I guess current requirements would have helped. The LEDs would be the nominal 20mA type but I'd like to be able to control the brightness. I figured pulsing an enable pin fast enough would give me that control but if the IC has that control then even better.I thought about the ULN2803. I've used it before with success in other applications. In that case I wouldn't need a very special driver chip. Any shift register could do. The green LEDs can go up to a 3.4V drop though so that could push my voltage requirement even higher. (I'll have one green digit in my design.)

author: mpicker21
author_rank: Contributor
timestamp: March 04, 2017, 01:08:14 am
content: Thanks for the tips guys. I like the simplicity of the transistor idea compared to the overly complicated solutions I was considering. I probably overlooked the idea beacause I was initially hung up on multiplexing multiple digits.

author: DaJMasta
author_rank: Super Contributor
timestamp: March 04, 2017, 01:11:19 am
content: Depending on the number of segments in total, there's always the discrete transistor option too - then the sky's basically the limit.I know it's preferred to drive them all serially, but if you still had a dropper resistor for each string of LEDs would the current sharing be good enough to do 2-3 strings of LEDs in parallel? With such a large voltage drop per LED, your string is gonna need a fair bit... may be simpler to just parallel once or twice and use a lower main voltage.I guess in the same vein, you could just use a pair of ULN2803s, and use one for each half of the LEDs for the segment and just drive them with the same signal. A PWM signal is the typical one for LED dimming, I'd just make sure you're driving them with the same clock source (from one micro), or you'll end up with some visual pulsing from driving lights with slightly different timings.

author: Ian.M
author_rank: Super Contributor
timestamp: March 04, 2017, 01:17:20 am
content: 48V for 16 implies 3V Vf white or blue LEDs. 4 strings of 4 LEDs each string having its own series resistor for current sharing, then all the strings wired in parallel per segment would be the best option. That would let you run it from 15V - its a lot easier to find cheap 15V or 16V SMPSU 'bricks' than 30V ones.Depending on the total current you need per segment, one of the TPIC6x595 power shift registers would be suitable per digit:TPIC6C595max 33V 100mATPIC6B595max 50V 150mATPIC6A595max 50V 350mAThe TPIC6B595 would also be suitable for two strings of 8 LEDs on a single output, from a 30V supply.I'm assuming you want static drive, not multiplexed. If you need to multiplex them, you'll need some high side PNP transistors or PMOSFETs for the digit commons, level shifters to drive them and either TPIC6A595 low side (or discrete NPN Darlingtons or NMOSFETS if you want a parallel segment bus) so you can push the pulsed LED current past its continuous rating to get good brightness. You can cheat on the series resistors - you need one resistor per string in each segment of the active digit, but the other digits can share the same resistors if its multiplexed.

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: March 04, 2017, 01:27:17 am
content: Very nice. Interesting devices.

author: mpicker21
author_rank: Contributor
timestamp: March 04, 2017, 01:47:57 am
content: Quote from: Ian.M on March 04, 2017, 01:17:20 amGreat solution. I don't need to multiplex the digits. I'm fine with static drive. I think I'll go with the 595s and the 4 strings of 4. I won't need the transistors this way and I can use lower voltages. I had concerns about the high voltage power supply design anyway. Thanks again. Everything seems so obvious and simple when I ask things on here. My mind gets lost sometimes. I have a problem staying... oh look, a squirrel.

author: andy1
author_rank: Contributor
timestamp: March 04, 2017, 02:02:13 am
content: I have also used TLC5916 in a project that drove large 7-segment displays (altough only at 12V but the chip supports up to 20V).It is relatively cheap, has nice single resistor maximum current setting and also programmable current tweaking altough I did not use that feature.So if the voltage is low enough this works on normal mode just like 595 so driving is very simple.

author: mariush
author_rank: Super Contributor
timestamp: March 04, 2017, 02:59:04 am
content: For low currents, for example for a fixed 30mA per series of leds...You could use something as simple as a NSI45030AT1G (30mA) :http://www.digikey.com/product-detail/en/on-semiconductor/NSI45030AT1G/NSI45030AT1GOSTR-ND/2096223Also available as 15mA :http://www.digikey.com/product-detail/en/on-semiconductor/NSI45015WT1G/NSI45015WT1GOSTR-ND/2401410And also available as 20mA :http://www.digikey.com/product-detail/en/on-semiconductor/NSI45020T1G/NSI45020T1GOSTR-ND/2194161or 25mA :http://www.digikey.com/product-detail/en/on-semiconductor/NSI45025AT1G/NSI45025AT1GOSTR-ND/2096221and there's also as 70mA or 100mA or 300mA but in bigger packages...Very small footprint, very cheap in volume...You put it in series with your leds and it regulates the current to 30mA .... about 1.8v voltage drop between anode and cathode, tolerates up to 45v between anode and cathode, but mindful of the 0.46w maximum thermal dissipation.So for example instead of 16 leds, use just 15 ... split the 15 leds in 3 segments of 5 leds ... this way you need a maximum voltage of 15v for 5 x 3v forward voltage leds which leaves you about 2v for the "led driver" and maybe 1v for the npn transistor that connects the cathode to ground to turn the segment on or off ... (you could use a ULN2003A for example for the 7 segments) if you don't use mosfets.So basically you can drive the segments directly from a standard 18v laptop adapter or higher, like 24v for example ... the "driver" would drop the voltage and regulate the current to around 15v.- 18v+ --- led driver - led 1 - led 2 - led 3 - led 4 - led 5--------------- uln2003a / transistor / mosfet----- ground- 18v+ --- led driver - led 6 - led 7 - led 8 - led 9 - led 10 -----------/- 18v+ --- led driver - led 11 - led 12 - led 13 - led 14 - led 15 ---/Alternatively, you can of course just use a single dc-dc converter to boost the 12-24v or whatever you want to around 55-60v and then just use one of these "drivers" for each string of 16 leds (~ 48v for 16x3v +2-4v for the driver and whatever you use to turn on or off the segment).Or just use a transformer (classic or toroidal) with a bridge rectifier and a capacitor big enough to have the minimum voltage above your threshold. ex get a 48v AC transformer, after rectification with a bridge rectifier you have a peak voltage of around 48x1.414 - ~ 2x0.7 = ~ 66v so if you want at least 55v at 1A you use at least a 820uF 80-100v rated capacitor, and you have your isolated 55-65v power supply.

author: Ian.M
author_rank: Super Contributor
timestamp: March 04, 2017, 03:37:58 am
content: The NSI45030AT1G could be helpful if running the LEDs from an unregulated supply, but if you've got a well regulated supply I see little benefit. 7 segments @60mA from 15V + 30mA for a d.p. is only 0.45A per digit worst case, so its not particularly hard to use heavy enough supply wiring tp keep the voltage drop small enough that the brightness doesn't chance much if simple resistors are used to limit the current.Admittedly, 15 LEDs per segment would make more sense - either with the recycled 19V laptop PSU as described or alternatively five strings of three from 12V, and new 12V supplies tend to be cheaper and more readily available than 15V ones. However the 12V option would push up the cost of the drivers as you'd probably need the TPIC6A595 if you don't want to mess with discrete low threshold NMOSFETs and a 74HC595 to drive their gates.Personally, for a big display, I'd use pieces of 12V flexible LED strip for the segments and not have to faff around wiring up discrete LEDs, or adding current limiters etc.