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.

freakdaddy


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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy