I recently started a project in which I want to control two 7-segment LED displays using two shift registers (74HC595) and my Arduino. I thought I had the basic ideas mastered, but I ran into some complications and I could use some help.

For this project, I wanted very (physically) large digits. I purchased two of these giant 6.5" 7-segment displays from Sparkfun. They are common anode.

The first thing I realized is that these displays likely need more than the 5V that the Arduino will supply. So, I'm guessing a different source will be needed. I'm hoping that a 12V battery would do it, but I'm not sure. I'm also a little uncertain what that implies for my circuit... does that mean I'm going to need a relay?

I also realized that I'm uncertain about the resistors I need here. I'm not sure if I'm reading it correctly, but the specs seem to indicate that there are 12 individual LEDs in each segment (five in the decimal point, which I probably don't even need for this).

The specs indicate 20mA forward current and forward voltage of 11.6-12.4V, but I don't understand if that's per LED, per segment, or for the whole display.

One other point - I intend to use multiplexing (or charlieplexing?) to cycle through and turn on individual segments to reduce power consumption at any one time. (I was thinking that if I did one segment per display, that means only two segments, at most, need to be lit at any one time.)

I'd really appreciate any advice here. It would be great if someone could put together the entire wiring diagram, but I'm happy to take a crack at it myself if somebody can answer some of the key questions. (i.e., power source, resistors)

  1. They are common-anode, so charlieplexing is out.

  2. Multiplexing does not reduce power consumption, it only (may) simplify the drivers. You only have two displays, so you may as well not bother and drive them statically. The ratio of peak to maximum current is very low on these displays (only 1.5:1 for 10% duty cycle).

  3. There are two parallel strings of 6 series LEDs for each segment, as shown the the datasheet. The decimal point has one fewer and apparently a resistor (not as shown). The voltage is for all LEDs in series. Since that voltage is around 12V you should use a higher voltage supply such as 15V or maybe a 19V laptop adapter.

  4. You can use 2x ULN2003A drivers along with the 2x 74HC595s and 14 resistors to control the displays. The ULN2003A drivers will drop around 0.8V at 15mA, so you can find the resistors as around 150 ohms with a 15V supply or about 430 ohms with a 19V supply. If you use the decimal point be prepared to change its resistor value to match the brightness, and you'll also want to use the ULN2803A which has 8 drivers per chip rather than 7.

  5. 20mA is the absolute maximum current at 25°C so don't attempt to run them at that current unless they are going to live in a refrigerator.

  • 1
    \$\begingroup\$ I'm beginning to wish there was an "Answer in progress..." alert by StackExchange, so we don't duplicate each other's effort. :) \$\endgroup\$ – rdtsc Jun 15 '15 at 16:07
  • \$\begingroup\$ @rdtsc Yup. Some people lay down a placeholder before fleshing out the answer, but I've not been doing that. \$\endgroup\$ – Spehro Pefhany Jun 15 '15 at 16:14
  • \$\begingroup\$ Thank you very much for the comments. Could someone help me understand the pros/cons of the darlington array approach vs. the approach @rdtsc outlined below? I really appreciate the help. \$\endgroup\$ – josemonkey Jun 15 '15 at 18:37

If you look on the second page of the specs, you'll see that each "segment" (A-G) is actually made up of 12 LED's, 6 in series, paralleled with another 6. So when it says "Forward voltage" being 12.0v, it means quite literally that you need 12v to power the segments. No relay is needed. So put 12v on pin 5, and pull A-G and/or DP down to 0v (ground) to light up that segment. DP only has 5 LEDs, so will need a current-limiting resistor. It is common to drive seven-segment displays this way, and the '74 series used should have "open collector outputs" to match this methodology. It is fine that the '74 series are running at 5v, as "open collector" simply means "the collector of a transistor as an output." Study up on transistors and "open collector" to see how that works.

Each segment needs 20mA of current (30mA if pulsed 1/10th duty cycle, 10kHz), and there are eight segments to each digit, so each digit could use a maximum of 0.030A * 8 = 0.240A or 240mA. Multiply that by your total number of digits to get an idea of how much power to provide at 12v. If the supply is regulated at 12v, it may be possible to get away without putting any resistors on the segment leads, but this is not recommended. Using 15v may be a better idea, as using a (current-limiting, biasing) resistor limits the current to the segment, and can prevent it from burning up if the supply voltage ever fluctuates (as can often happen when it gets warm.) Note that it will be quite bright at full power; if that seems too bright, you'll want to increase the resistor values on each segment leg to "dim" them. Only way to determine this is by testing. :) At full power, a group of these may also get quite warm. So test it and make an executive decision.

  • \$\begingroup\$ Thanks. As for the brightness, this is intended for outdoor use, so the brighter the better. Having said that, that also means that heat is of particular interest, too... \$\endgroup\$ – josemonkey Jun 15 '15 at 18:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.