Go Down

Topic: Arduino +Sparkfuns 4-digit 7-segment 16pin display (Read 26 times) previous topic - next topic


Thanks for answering Jeremytsl question about the resistor.

Wow, the wiring on that clock you have on your blog is so much more compact than my breadboard. Nice...

Your code for figuring out the value of each digit is much easier to understand than my power of ten array.

I think this is part of what makes the Arduino cool.  There's a lot of sharing going on.


you're so right, the arduino community is amazingly helpful.  Our projects could combine to form some sort of super voltron clock display robot.

thanks for breaking this down for us.  Your explanation makes sense and I will experiment with changing digits and observing brightness.

I don't fully understand the 2nd part of your explanation tho, please bare with me and my questions:


You all are driving the digits directly.  That is okay as long as the resistor value is high enough.  You need the current through the digit (which is the sum of the current through each segment) to be less than 40 ma).

How did you figure out this 40ma limit?  The description on SF.com says "max forward current of 20mA"


If you used smaller series resistors on the segment drives, you would need to buffer the Arduino output with a transistor.

What would happen if you didn't, and your current on each digit exceeds 40ma?  Would the LED's burn out?


if you were to use something else to drive the digits (shift register), that 40 ma may not work.  Some shift registers can't sink 20 ma per segment either.

This part concerns me since I'm using a shift register (74HC595).  What would you recommend I do?  I've looked over the datasheet, but it makes little sense to me.  
it says "+/- 6ma Output Drive at 5 V".  Does that mean it's giving me 6ma per segment without any resistors?

Thanks in advance


40 ma is the max output of an Arduino pin, and you can't drive ALL of them at the same time at 40 ma.

If you go over it, you might burn out the microprocessor.

The 20 ma is the max current per segment i believe.  if you lit 8 segments at 20 ma, the digit would need 160ma.  Way more than the Arduino can supply.  A cheap npn transistor could do that tho.

The datasheet is a bit weird, but yes, 6ma is what their typical output current is going to be.  You can light a segment with that (not a digit), with the right value resistor, but the display won't be anywhere near as bright as it would closer to 20 ma per segment.  With this device driving an LED, you can tolerate the output voltages getting a bit out of spec, so you might push that 6 ma a bit.  8ma probably works, maybe even 10.

But keep in mind that you will be driving all 8 segments from one 595.  the max continuous current you can source/sink from the device is 70ma.  8 x 6 = 48, so you are okay there.  Trying to run 8 x 10 ma wouldn't work.  8 x 8 is 64, pretty close to the limit.  


Boy, do I have a lot to learn about electronics.  

Thanks brtech for shedding some light on this stuff.


I picked up one of those (the blue ones) and i'm looking for a driver for it.  I can't seem to find any decent digit multiplexing ICs for a CA display.

SAA1064 does pretty much everything I want it to (I2C, self multiplexing, small programing footprint, little processor overhead) but I don't figure I can get it working with that display (at least not for 4 unique digits).

I don't want to go with a BCD unless it'll output Hex as well (can't remember the proper name for them).

I figured out a decient solution using 4x 8 bit shift registers, a 4 bit (or and multiple of 4) an 8 channel mux, a few transistors and an oscillator.

Thus far, octopart has failed me in my search for a 7-segment 4 digit(+) driver w/ CA. Can I just use a chip made for CC and use some transistors?

Go Up