Powering large 4" seven segment LED digits

Hello gurus /guruettes,

I am thinking of how to put together a large countdown timer. I have it working fine with one of those four digits in one block type displays, using a 74HC595 chip.

Now the challenge is that the big ones take 9 volts and thus cannot be powered by the Arduino. See:

Digits on eBay

So, I am slightly baffled on where do I supply the 9V?

Should I plug it in the Arduino and branch out voltage and ground wires before the plug to gain common ground?

Any assistance gratefully acknowledged.

Attached is a copy of the code.

arduino-7-segment-test-advanced.ino.txt (3.69 KB)

usenetfan:
I am thinking of how to put together a large countdown timer. I have it working fine with one of those four digits in one block type displays, using a 74HC595 chip.

A 74HC595 is not a display driver. It is inappropriate for the purpose and most of such "displays" are using the chip well beyond its safety ratings.

usenetfan:
Now the challenge is that the big ones take 9 volts and thus cannot be powered by the Arduino. See:
Digits on eBay

Nice display but a trifle expensive. Four LEDs per segment, red, will require a TPIC6B595 to drive each digit with the anode connected to 12 V and a current limiting resistor in each of the segment lines from the TPIC6B595. The TPIC6B595s are cascaded in exactly the same fashion as the 74HC595, three pins of the Arduino will control them all.

Nothing - apart from a few LEDs at 20 mA each - is ever "powered" by the Arduino.

usenetfan:
So, I am slightly baffled on where do I supply the 9V?

12 V - to the anodes of all the displays.

Let me check out the resistor value for you ... 20 ma over 4 V drop, 220 Ohms for each segment, 470 Ohms for the decimal point.

usenetfan:
Should I plug it in the Arduino and branch out voltage and ground wires before the plug to gain common ground?

All the grounds of the TPIC6B595s are connected together to the 12 V power supply ground and the Arduino ground. You will need a 5 V DC regulated supply for the Arduino - do not attempt to use the "Vin" or "barrel jack" to power it from the 12 V; a separate switchmode "buck" regulator would be appropriate to power it all from 12 V.

usenetfan:
Attached is a copy of the code.

Please read the forum instructions to see how to post code here.

This board uses the surface mounted TPIC6C596, but is functionally identical to the TPIC6B595 Paul__B mentioned.
Hookup and example code on the same page.
Leo..

The TPIC6C595 is the higher specification version of the TPIC6B595.

Be warned however that the resistors on that board are the wrong value (15 Ohms) for your display - it is designed for a different display. You need to use 220 Ohm resistors for the segments and 470 Ohm for the decimal point.

Thank you all for your help! This will make my life easier when I take delivery of the digits

Hi again,

I have some progress with this. I am testing this small scale with the 74HC595 and one digit common anode LEDs. I followed the Freenove tutorial on this and it works

As it happens, the idea is to lead the four anodes to pins 4-7 on the Arduino. But if I am to supply 9 volts to the big displays, how does that happen?

Do I need to have four transistors, one for each anode, to act as a switch for the anodes?

Again, I hope I am not making a fool of myself for asking this, but I am a n00b still and would love some more advice, for which I am always grateful.

Big 7-segment displays need a higher voltage. That's why you can't use the 74HC595.
The TPIC6B595 (and family) is designed for a higher voltage (and higher current).
Matrixing (swithing one common anode on at the time) reduces brightness, so shouldn't be used for big displays.
Just use one TPIC6B595 (US$$0.50 ebay) per 7-segment digit.
Shift registers are daisy-chained, so a whole bunch of them still use the same three Arduino pins.
Leo..

Thanks Leo, I just put in an order for the big chips.

I will then connect all anodes together, but how are the four chips connected to the Arduino and then chained together? There is a clock pin and a latch pin, and a data pin, so the clock and the latch are shared to the chips and the data pin is unique to each, I presume.

These are the one digit connection and four digit (one block) connection I have from Freenove.

So please bear with me and indicate how to wire four chips to as many big digits, and the result to Arduino.

Many thanks for the time and effort!

I'm a little confused. There was talk of using transistors to drive the anodes, which implies multiplexing the digits is planned. But also multiple Tpic chips, implying no multiplexing. What's the story?

For multiple Tpic chips, clock and latch signals go in parallel from the Arduino to each tpic chip. But the data signal goes from the Arduino to only the first tpic chip. The data output from the first tpic chip goes to the data input of the second tpic chip and so on, in a chain.

I am probably just as confused, but this is the way I understand it now.

Each large 7 segment display has its own TPIC6B595 wired as in the pic for one digit.

Arduino provides four clock and four latch wires in parallel, and I assumed four data lines. Otherwise I cannot see how the digits could be fed different data.

But you are saying that only one data line leaves the Arduino, to be passed from one TPIC6B595 to another? This is somewhat tough for me to see how to code it.

Awaiting your kind response once more,

Heikki

I am probably just as confused

Yes you are, very.

Each large 7 segment display has its own TPIC6B595 wired as in the pic for one digit.

Correct.

Arduino provides four clock and four latch wires in parallel,

Not quite, the Arduino provides one clock and one latch output which go to the latch and clock on all four shift registers.

and I assumed four data lines.

No just one data line.
The data output line of the first shift register is wired to the data input of the second shift register. The data output of the second is wired to the data input of the third, and so on.

This is somewhat tough for me to see how to code it.

What is tough about using four shift out statements all sending a different bit pattern. The bit pattern you send first is the one that ends up at the furthest shift register.

The tough part is merely doing this for the first time. I am sure that with the help of this forum, I will get it done.

Every bit of information helps, so thank you for your time and effort.

Every bit of information helps, so thank you for your time and effort.

Does that mean you don't understand what I said?

If so look at this.
https://www.electroschematics.com/11230/multiple-shift-registers-arduino-part-1/

The chips - 75HC595s or TPIC6B595s - are shift registers. It seems you do not understand what these are so I suggest you study up on them now.

"Chaining" shift register chips forms a single much longer shift register - for four digits you would have a 32 bit long register into which you shift (clock) 32 bits at a time, then latch them. Of course, your Arduino see this as four lots of 8 bits since it handles data eight bits at a time - which in any case matches the 75HC595 or TPIC6B595 for each display.

All the needed info (tutorial video, hookup, code) was in the link in post#2.
Leo..

"The TPIC6C595 is the higher specification version of the TPIC6B595."

TPIC6C595 is rated for 100mA outputs, the TPIC6B595 for 150.
TPIC6A595 is rated for 350mA.

How is the 6C595 the higher spec version?

I think that was a typo.
The chip Sparkfun uses is a TPIC6C596.
Leo..

I don't see a lot of differences in the data sheet from C595 & C596.

100mA drive each, while B595 is 150mA.

So I'd still like to why Paul___B thinks it is a higher spec version.

Sure, but even the lightest member of that family can do what OP needs (20mA/segment).
The TPIC6B595 seems to be common/cheap on ebay.
Leo..

These latest replies are just what I needed. Many thanks all, I will now get everything done.

This Arduino forum is such a great place for learning with its experts willing to help.