Go Down

Topic: driving 11v 7 segment led displays (Read 1 time) previous topic - next topic

freakdaddy

I need to drive 6 - 3" 7 segment led displays.  Each segment has a forward voltage of 11v.  The approach I would take with a regular 7 segment would be to use a 7447 but since the voltage requirement is higher I am not sure what to do.  Should I use a 7447 to drive transistors that will drive the leds?  Any tips are appreciated!

dhenry

Quote
Should I use a 7447 to drive transistors that will drive the leds?


Certainly one option: it keeps the code base small.

freakdaddy

Any recommendation on what transistor to use?

dhenry

That's a function of the current needing to light up the leds.


dhenry

In that case, any of those small signal bjt / mosfet will work.

freakdaddy

Thanks dhenry...  As a novice, I appreciate your knowledge greatly.

MarkT


I need to drive 6 - 3" 7 segment led displays.  Each segment has a forward voltage of 11v.  The approach I would take with a regular 7 segment would be to use a 7447 but since the voltage requirement is higher I am not sure what to do.  Should I use a 7447 to drive transistors that will drive the leds?  Any tips are appreciated!


Just use the SN7447 as normal, it will drive up to 30V - its an open-collector device so only sinks current (upto 40mA per segment).

Note the SN74LS47 has less voltage and current drive (15V, 24mA), but should still handle your displays.
[ I won't respond to messages, use the forum please ]

freakdaddy

I was actually looking through the data sheet today and noticed that.  I didn't realize they went up to 30v.  Thanks!

CrossRoads

The 7447 does not have any latching function. I'd go with 83 cent (avnet.com) TPIC6B595 shift register with high current/high voltage open drain output.
Daisy chain 6 of them, 6 SPI.transfer()s to update the display.
MOSFET outputs will run a lot cooler than 7447 as well.
Create an array with your font, pull that data & write it out.
Code: [Select]

// update display
digitalWrite(SS, LOW);
for (x=0; x<6; x=x+1){
SPI.transfer(fontArray[x]);  // fontArray[] = {B00111111, B00000110, }; etc with 1 = segment on
}
digitalWrite(SS, HIGH);
[code]
[/code]
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

MarkT

I think the OP is talking about a muliplexing the displays so only one 7447 is needed (but 6 high-side switches needed to do the digits?).

Given the high-side isn't 5V then the digit switching would be a bit tricky.  Using one chip per digit might make sense (although a lot more
complex wiring-wise compared to a multiplexed set up).  If so then constant-current low-side drivers would be more useful than the TPIC6B595
to avoid 42 resistors that would be needed.  One 16-output constant current driver per two digits would mean only 3 chips and 3 pins to drive
everything (but the bcd to 7-segment conversion would need to be in software).  I think a 12V supply might just be enough overhead?

[ I won't respond to messages, use the forum please ]

CrossRoads

"(although a lot more complex wiring-wise compared to a multiplexed set up). "

Really. I would have considered that less complex. Wire up the TCIPs with SCK, SS, in parallel, daisy chain the data line.
Use  for_next loop to 6 SPI.transfers to send the data out.

This board here will do most of the job for you. Just add the digits and current limit resistors.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Go Up