Six digit Seven segment display countdown timer

What do you mean? In terms of current, the datasheet states a max of 70mA. In terms of pins, in case they're cascaded, only require three pins. They have 8 output pins.

Since they have an absolute max of 70mA (most people don't recommend going above 35mA) and each segment draws up to 30mA on a 1-inch display, a 595 could not reasonably power 210mA (30mA x 7 segments per display).

This is definitely a really clever solution. However, I don't see how 5mA could power a combined 210mA of LED segments without the use of transistors. I rather just cascade shift registers in that instance.

answer is 8.

yes, IC need some current for own needs, additional to current drawn by segments
BUT if what you say is true, then take 1x 595 register, 2x decoder and 2x 7-seg displays, 16x 200 Ohm resistors, maybe PCB. such unit is cascadeable/chainable/daisy chainable/etc.

Thank you so much for the in-depth explanation!

This, again, is a really clever solution. However, I have three worries.
1.) If the arduino is constantly kept busy, wouldn't this mess with updating the display using the
RTC module?
2.) If I remember correctly, don't BJT's/MOSFET's have a sort of "activation" time? Meaning, if I strobed them like you proposed, this delay could interfere with things?
3.) I didn't mention this in the initial post (and I definitely should have), but I'm planning on using a servo/stepper motor to drive some kind of belt system to display the countdown percentage visually. So in case this strobing keeps the Arduino busy, wouldn't this interfere with updating the motor?

I would definitely like to use Darlington Arrays if possible. I think it'd be a good learning experience and keeps away the oh so magical mystery box. I like understanding what my components are doing. The issue I've ran into is that there are no simulators that allow Darlington arrays nor are there any decent tutorials when it comes to using them in Arduino circuits. I'm not even sure how to wire one of them correctly :sweat_smile:.

To be clear, you'd still need one IC per digit, and these would provide 5ma per segment, per display, for a total of ~210 ma.

This seems to be considered acceptable for small 7 Segment LEDs, but if you have tested yours, and they really need 35ma per segment, then it won't do.

In that case you'd still need some sort of transistor between the IC and the LEDs, so there is no real advantage over cascading shift registers.

The RTC module keeps its own time internally, so there's no worry there.
As for the task of "fetching the time and changing the LED output", this would happen in between strobes of the LED.

// Something like
void loop() {
   readRTC();
   strobeLEDs();
}

Again, it's cheating, but you can often get away with it.

They do, but it shouldn't be high enough to be considerable here, I think..
I should say that strobing is a "time-tested" cheat, even if it's not ideal.
I should also mention you're losing some of your apparent brightness, seeing how each LED digit is only on some of the time.

This is another valid concern, and again I'm not entirely sure. I think that the servo library uses one of the Arduino's dedicated "hardware timers", so it should keep ticking happily in the background, no matter how much you load up your loop().

This could be incorrect, so you may want to seek out more information, or test it for yourself. Have you ever worked with breadboards? It's a great idea to test your circuit out before you commit to soldering.

A Darlington pair is really just two transistors wired together. The first one draws a tiny current to turn on, and allow a small current to flow. This small current flows into a second transistor, allowing a large current to flow (through the second transistor).

Schematic of Darlington pair

A "Darlington Array", is a bunch of Darlington pairs, stuffed into one IC, for convenience.

If you didn't spot it already, Falstad has a bunch of examples under the Circuits menu.
There is one showing a single Darlington pair, under Circuits > Transistors > Darlington Pair

not true. see above and here

spacial for you i made a mockup with SN74HC595N

each segment consume 10.5mA (even the dot), resistors are 200 Ohm, display 5161AS.

Thank you for the link!

Thank you for the mock-up! Looking up the SN74HC595N's datasheet, it again states a maximum of 70mA continuous output current through VCC or GND. So if each segment draws up to 10.5mA and we have 8 of them on (assuming the DP), that would equal 84mA, which is above the stated maximum. So is this maximum something we can push a little?

it is still on my table.

actually 84,4mA. if you take 250 Ohm resistors it will drop consumption to 8.4mA pro segment.

Apparently, from the picture, you can push it, but with a phrase like "Absolute Maximum", I don't think you can guarantee reasonable function.

Another thing to consider here is: the harder you push it, the more the output voltage will drop, at least to some degree, so you will get diminishing returns for LED brightness.

If the demo hasn't been disassembled, maybe @kolaha could measure the output voltage under 8.4mA load?


on which place should i measure the voltage?

Between QA and GND.

I looked in the datasheet and it sounds like it should only be a small effect, but interesting to find out in a real scenario!

is OK when still 10,4mA(200 Ohm) ?

Yes, it's interesting to find the output voltage under those conditions.

QA to GND =4.197V; after resistor 1,9V.

1 Like

The more I thought about it, the more it confused me, but a drop to 4.1V means probably less than a 15% decrease in LED power (?)

So not a big problem, I guess?

4,525V on Vcc of 595

I was speaking with someone about this today, and they pointed out that my maths was off, and the real number is more like a 25% decrease in power.

They were also strongly suggesting that SN74HC595 should not be used to drive LEDs.

I think we might be derailing the thread a bit here.. oops

It's all good haha. @kolaha, thank you for all the measuring work! These things are handy to know. And @toddnz thank you for the math behind it!

Did they by chance recommend a possible solution?