Pages: [1] 2 3 4   Go Down
Author Topic: 12V 7 segment LED display  (Read 8881 times)
0 Members and 1 Guest are viewing this topic.
UK
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 :-(

I'm wondering if anyone can suggest an alterntive chip or an equally nice solution to the problem....
Logged

Dubuque, Iowa, USA
Offline Offline
Edison Member
*
Karma: 29
Posts: 2239
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Try the TLC5916 or A6275.
Logged

Global Moderator
Boston area, metrowest
Offline Offline
Brattain Member
*****
Karma: 436
Posts: 23623
Author of "Arduino for Teens". Available for Design & Build services. Now with Unlimited Eagle board sizes!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Are the segments common anode or common cathode?
Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

UK
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, sorry, should have mentioned that... the displays are common cathode.

Thanks Chagrin, I will take a look at the 2 chips you mention.
Logged

UK
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, looks like the TLC5916IN could be a good option as it can be driven by 3V3 and respects the http://arduino.cc/en/Tutorial/ShiftOut I think?.... which would be a great help :-)  May I ask what other components I should get in the order to make this work?
Logged

Dubuque, Iowa, USA
Offline Offline
Edison Member
*
Karma: 29
Posts: 2239
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Crossroads' question applies here; if your digits are common cathode then these chips won't work. Both chips (and the A6278) sink current.

I'm not aware of any chips in the same style as these that source current.
Logged

Global Moderator
Boston area, metrowest
Offline Offline
Brattain Member
*****
Karma: 436
Posts: 23623
Author of "Arduino for Teens". Available for Design & Build services. Now with Unlimited Eagle board sizes!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

UDN2981 can control sourcing of current.
Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

UK
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I Don't think I fully understand the current sink issues.... But learning all the time.  Would I be right in thinking the TPIC6B595 could be a good option here?
Logged

Dubuque, Iowa, USA
Offline Offline
Edison Member
*
Karma: 29
Posts: 2239
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Source is a positive output and sink is a negative output. As you mentioned your segments were common cathode (they all share a single, negative output) that would mean that the TLC5916 etc. would not work since all of their outputs are negative.

The TPIC6B595 and similar shift register chips would probably be your only option. However, unlike the TLC5916, the TPIC6B595 is not a constant current device so you will need to use a resistor on each output to limit current.
Logged

Global Moderator
Boston area, metrowest
Offline Offline
Brattain Member
*****
Karma: 436
Posts: 23623
Author of "Arduino for Teens". Available for Design & Build services. Now with Unlimited Eagle board sizes!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Here's a way to do it.
Need a High Voltage current sink such as a TPCI6B595 (or 7 discrete transistors, or a ULN2003, with Arduino providing the latching data function), and 3 NPN transistors (or 1 for every digit you have).
The current is provided from 12V thru a current limit resistor to each segment. All digit segment A are connected in parallel, all B's in parallel, etc.
So for digit1, you will control which segments are on by letting the segments be high and taking the common cathode low. Segments you want all have their anodes pulled low by the shift register.
Drive anodes, drive cathode.
Drive anodes, drive cathode.
Repeat for remaining digits.
Cycle thru quick enough to be flicker free.


* 12V Common Cathode segment driver_a.jpg (54.22 KB, 960x720 - viewed 127 times.)
Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

UK
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for taking the time to explain Chagrin & CrossRoads, its very much appreciated.... and I am starting to understand a little better.

I can see how your circuit works CrossRoads, this might well be the way forward.

May I check my thinking with you on a couple of points?

- Using a MEGA, I could simply use 3 X UDN2981 with a pin dedicated to each segment of each digit (prefer to use a shift register however so as to learn some more).

- Could one use 3 x 74HC595 shift registers to control 3 x UDN2981 - perhaps a bit long winded but again it might be a simpler project for me in terms of learning :-)
Logged

Dubuque, Iowa, USA
Offline Offline
Edison Member
*
Karma: 29
Posts: 2239
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

- Using a MEGA, I could simply use 3 X UDN2981 with a pin dedicated to each segment of each digit (prefer to use a shift register however so as to learn some more).
Yes, but in practice you'd find this difficult. It's a lot of wires to connect to the Mega and the code would be much larger and clumsier.

- Could one use 3 x 74HC595 shift registers to control 3 x UDN2981 - perhaps a bit long winded but again it might be a simpler project for me in terms of learning :-)
That would work as well. I'd suggest using the TPIC6B595 or other shift register though so you could eliminate the need for the UDN2981 (the TPIC6B595 is 150ma per output where the 74HC595 is 6ma).
Logged

Davie, Fl
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It may be easier to find and use discrete transistors than to hunt up display driver IC's.

For common cathode displays the segment drivers between the Arduino and the display may be a pair of transistors. The driver is a PNP with it's emitter to the display VCC, the collector to the display digit, and the base connected to the collector of the NPN pre-driver through a resistor.  A 1 meg ohm resistor goes from the driver base to display VCC.  The pre-driver emitter is grounded and the base goes to the Arduino output via a resistor.  The value of the series resistors should be between 1-10k ohms depending on the desired collector current and transistor hfe.  A current limiting resistor is placed between the display and the transistor, it's value based on the display forward drop, supply voltage and desired current limit.  (VCC-VF/I).
The common cathode segment drivers may be NPN transistors, emitter to ground, collector to common cathode, base to Arduino output via a resistor (1-10k).
Transistors need to handle the desired current and voltage.   



Logged

Global Moderator
Boston area, metrowest
Offline Offline
Brattain Member
*****
Karma: 436
Posts: 23623
Author of "Arduino for Teens". Available for Design & Build services. Now with Unlimited Eagle board sizes!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
http://www.futurlec.com/Others/UDN2981A.shtml
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.
Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

Davie, Fl
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: April 25, 2012, 02:38:58 pm by scharkalvin » Logged

Pages: [1] 2 3 4   Go Up
Jump to: