# 7 Segment Common Cathode LED Digit Display Circuit for Arduino

For the first time I am going to make a digital clock with 7 segment displays with Arduino Multiplexing. I am about to use the following circuit to run 4 large Common Cathode 7 Segment LED Digit Displays. The circuit diagram shows only 2 digits with 4 of their anode pins connected. Hope you understand the full schematic from this diagram.

simulate this circuit – Schematic created using CircuitLab

My Questions are:

1. Is this schematic correct?
2. These are large 4 inches displays, run on 9V, Common Cathode type and consumes approx 200mA current total for all eight segments of each display. Programmatically, I am going to multiplex digit by digit, not segment by segment. Do you think BC337 is the right choice for this, considering in parallel that I will turn the digits on and off as frequent as once every 1 mS?
3. Base resistors 1K Ohm. Is the value ok to supply enough current to transistor base and lit up the LEDs with Arduino's digitalWrite(Dn, HIGH) method?
• No - you've got NPN bjts at the top connected as emitter followers so max Vout is going to be 0.6V below the I/O voltage of your controller. You need PNP types. Jul 29, 2016 at 21:06
• The base resistor value will depend on the transistor gain and the current drived by the transistor Jul 29, 2016 at 21:08
• @Jlm Dearden So, you mean I am going to get max 8.4V if I use NPN? Sorry for my poor knowledge on Electronics... If yes, can I just keep the I/P voltage around 9.6V to keep it near 9V. Although I am sure, my LEDs are going to glow at 8.4V as well. Jul 29, 2016 at 21:14
• No your I/O pins will give you either 5V or 3V3 depending on the arduino version. This means you'll either get 4.4 V or 2.7V - your LEDs won't glow. This voltage has nothing to do with the 9V supply so increasing that won't solve the problem. Jul 29, 2016 at 21:22
• I'm putting up a circuit Jul 29, 2016 at 21:27

Further to my comment - you need a high side switch.

For example:

Q2 is a jellybean NPN type (such as a bc548). If the base voltage of Q2 is below 0.6 V it is OFF, more than 0.6V it is ON. The output from an arduino (3V3 or 5V) can easily operate it. Note that the high resistance values means the arduino doesn't have to supply lots of current to enable the switch.

Q1 (bc327) is the PNP version of the bc337. When Q2 is OFF (input LOW), Q1 is off and no current can flow to the segment.

When Q2 is ON (input HIGH), Q1 is ON and current flows. You may need to limit the segment current with a resistor.

You'll need this circuit (or something similar) for each segment you wish to drive.

• Great! Clearly understood :) Jul 29, 2016 at 21:41
• One last question @Jlm Dearden What about the Digit Controllers at the bottom? Do they need similar change? Or whatever I have is ok? Jul 29, 2016 at 21:45
• @sribasu They look fine, you need an NPN type here. The 337 is quite capable of switching 200mA and 1mS (1kHz) is well below their max switching frequency. The minimum gain is quoted at 60 so a base current of about 3ma is needed. 1k0 should be fine. Jul 29, 2016 at 21:50
• I have a similar question in mind. I am trying to make a 12V LED flasher with a NE555 timer and CD4017 Decade counter pair. Do I need a NPN-PNP junction just like the one you have shown above to lit the LED based in CD4017's output or only a NPN would work? By the way I would supply 12V power source to both the NE555 and CD4017. Aug 13, 2016 at 6:29