Electronic – Why is there a delay in a common anode 7-segment display

7segmentdisplaymultiplexertransistors

I have a common anode 4-digit 7-segment display. I have each segment cathode connected to a 330-ohm resistor, and the resistor is connected to a shift register. Each segment cathode is connected to the same shift register. Each common anode is connected to a second shift register. Right now, I am using an Arduino to multiplex the display to show a number.

This works great, but there's a problem. The display isn't bright enough! I assume because this is a common anode configuration, and that the shift register can only provide about 40mA of current for 8 segments (A-G and the decimal point).

I have decided that I need more power. My first thought was to try to use 4 PNP transistors. I hook them up correctly, and the segments get brighter. Great! However, there is a problem. It seems like the transistor is slowing something down! There is a nasty glow of segments that are used by other digits! I have the microprocessor set to show each segment for 4 milliseconds. The datasheet claims that the transistor should switch on and off faster than that. Why is this faint glow happening?

Here's what it looks like when 1111 is displayed:

enter image description here

Here's what it looks like when 1112 is displayed:

enter image description here

Best Answer

Here is a possible mechanism for the fault. You say it works (dimly) without the transistors, but doesn't work with them. So it sounds like the fault is in the transistors. Is there some reason that the transistors might be letting some current through when they shouldn't?

Yes. You're using a PNP transistor. As you know, these transistors are on when the base voltage is lower than the emitter voltage. They are off when the base voltage is higher than or equal to the emitter voltage.

The problem with the shift register chip is that the outputs are always lower than the emitter voltage. I couldn't quite make out the part number of the chip you're using, but according to the datasheet for the 74HC595 (page 6), the outputs don't quite reach Vcc. If there is a tiny voltage difference, then you could find that a small amount of current is leaking out of the base of the PNP transistor. With a gain of about 100, you could find that there's enough CE current to give noticeable light output on the LEDs.

Something to try: Add a schottky diode between Vcc and the emitter. This should drop the collector voltage by a fraction of a volt, just enough to allow the shift register to fully turn off the transistor.