Maker Pro
Maker Pro

Question about 7 segment displays ?

C

capitano

I have noticed from datasheets of 7 seg displays that there is
no pin for enable/disable. How then do I implement a panel
with lets say three 7-segment displays where all the individual
displays share the same "segments bus" but only one will be lit at
any one time ? (please note, I am not referring to the driver/
decoder/encoder because I implement the function of the
driver with a PIC using the trick of lighting each led
separately in quick succession)
Thanks!
 
J

Jonathan Kirwan

I have noticed from datasheets of 7 seg displays that there is
no pin for enable/disable. How then do I implement a panel
with lets say three 7-segment displays where all the individual
displays share the same "segments bus" but only one will be lit at
any one time ? (please note, I am not referring to the driver/
decoder/encoder because I implement the function of the
driver with a PIC using the trick of lighting each led
separately in quick succession)

Switch the common anode or cathode.

Jon
 
K

Kevin Kilzer

Switch the common anode or cathode.

To expand on that a bit...

1. Use a transistor or FET switches for the individual commons, and
drive the transistors from the PIC; the outputs from the PIC are
probably not strong enough to drive all 7 segments (the number "8"),
simultaneously.

2. Put current limiting resistors in the 7 segment wires, not the
common wires, otherwise the "8" will be dimmer than the "1".

3. Make sure each digit is lit at least 30 times per second or the
display will flicker. Four digits implies 120 digits/second, or one
digit every 8 milliseconds.

4. Don't worry about overdriving the LEDs; since they are only on
briefly, they can handle more current than if they are on
continuously, and higher current makes a brighter display.

5. You can make the brightness adjustable by turning the digits off
prematurely, but that complicates the software somewhat.

Kevin
 
C

capitano

Thanks a lot for your reply, it has several interesting points, which I
must admit I have not thought about. The only think I was not quite
sure was when you said not to worry about too much current in the
leds because in 2. you said that I should limit the current with resistors.
I suppose what you mean is not to have too much current that will
cause a visible difference between different numbers, but not to worry
about the leds burning out ?
 
J

Jonathan Kirwan

Thanks a lot for your reply, it has several interesting points, which I
must admit I have not thought about.

There's an excellent book to look for, which covers ideas like
this in some detail (and the not-infrequent times this comes up
and is debated in comp.arch.embedded), is HP's Optoelectronics
Fiber-Optics Applications Manual (2nd ed). But this is such a
common need that you can find something on it just about
anywhere.
The only think I was not quite
sure was when you said not to worry about too much current in the
leds because in 2. you said that I should limit the current with resistors.
I suppose what you mean is not to have too much current that will
cause a visible difference between different numbers, but not to worry
about the leds burning out ?

Yes. His comment in item 2 is saying that if you use resistors
to limit the current (and that's just one way) then putting that
resistor in the common anode/cathode will mean that the
brightness of the segments will be related to the number of
active segments. And that's usually NOT desired. So, an
alternative to that is to use separate resistors "on the other
side," so to speak. In this way, the current though each LED
doesn't flow through a common resistor, but its own and thus the
brightness can be arranged to be roughly independent of the
number of active LEDs.

Jon
 
J

John Fields

What I meant about "too much current" is that LEDs (like all passive
components), are rated for a "typical" current that is determined by
the power dissipated in the device. For example, 10mA and a 1.6V LED
is .016mWatts.
 
Top