Question about 7 segment displays ?

C

capitano

Guest
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!
 
On Thu, 24 Jul 2003 01:06:58 +0100, "capitano"
<sdfsdf@Fsdfsdf.sfdsdf> wrote:

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
 
On Thu, 24 Jul 2003 02:21:19 GMT, Jonathan Kirwan
<jkirwan@easystreet.com> wrote:

On Thu, 24 Jul 2003 01:06:58 +0100, "capitano"
sdfsdf@Fsdfsdf.sfdsdf> wrote:

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.
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
 
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 ?

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
 
On Thu, 24 Jul 2003 14:05:10 +0100, "capitano"
<sdfsdf@Fsdfsdf.sfdsdf> wrote:

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

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
 
On Sun, 27 Jul 2003 05:58:53 -0700, Kevin Kilzer
<kkilzer.remove.this@mindspring.com> wrote:


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.
---
0.016 watts or, 16mW.
---

When you multiplex the LEDs, they are not on for 100% of the time, so
you can raise the current level considerably, without fear of damage
from power dissipation. The spec sheet will list an "absolute"
maximum that will be much higher than the typical value.

In any case, the current is limited by the resistor that you choose.
You must have the resistor because there is nothing else in the
circuit to limit the current to a level that is safe for the LED.
---
That's not quite true, since driving the segments from an IO port will
only allow whatever current the port itself can source or sink. In this
case it's a good idea to use the resistors to limit the port current to
that recommended by the data sheet.

--
John Fields
 

Welcome to EDABoard.com

Sponsor

Back
Top