Question About 7 segment displays

Hello All. First off, new to Arduino and the community. Still looking around and learning the ropes.

Question I hope someone can answer for me. What would be the best way to drive multiple 7 segment displays? Upwards of 30 or so. Is this even possible with the hardware?

Daughter and I are brainstorming potential projects and we would like to create a baseball scoreboard that can pull live scoring data from the internet. Might be a bit ambitious for our first major build.

Thanks all!

Use several MAX7219 and common cathode displays for small displays that can run on 5V. Each MAX7219 can drive eight 7 segment displays. (Or 9 with customized code, using the DP from 8 digits to drive the 9th digit.)

For large displays, which have multiple LEDs/segment, use common anode displays and TPIC8B595 or TPIC6C595, one chip per digit, to sink higher currents from higher voltage source (like 9 to 15V or more).
(Or 8 chips to drive 9 digits with some custom code.)

1 Like

Thanks!

Just want a small, hang on the wall type of board. So MAX7219 will probably be sufficient.

Lots yet to learn, thanks so much for the direction.

There is also the HT16K33 which can drive 16 7-segment displays, and uses the I2C interface so you can easily run up to eight.

Added to my list. This might be a better option. 2 of these should get the job done.

Then ready-made modules will probably be your best bet.

Aliexpress link

Saw those. Spacing doesn’t work for the application. Thinking about 3D printing a replica stadium scoreboard.

Thanks for the feedback!

Given that they are essentially, dirt cheap, the trick is to use only the parts of the display that are in the positions you want and forget about the others. You use more modules, but don't care. They "chain" to just three control inputs.

Haha, I thought you were srsly worried about taking on too big a project! :wink:

Just go step by step. And make the steps small. Small successes, small areas to find errors &c. This project separates nicely into several challenges; get the various parts tested and working before throwing them all together.

And as for that time when you do combine, say, displaying numbers on 30 7 segment displays and the other part that scrapes the internet for data, look a bit at the trouble people have combining sketches who haven’t written (or didn’t themselves write) the multiple parts with an eye to eventually getting them to function together.

There doesn’t pass a few days without a “how to I combine” kinda inquiry, you can learn from the answers how to avoid trouble from the beginning.

BTW sounds like fun!

HTH

a7

1 Like

That is something to think about. Could just hide every other digit if the spacing works. Not sure it will though. But definitely an option I will keep in mind.

Thanks!

Haha. Biting off more than I can chew is half the fun. :slight_smile:

3D designing and printing is the part I’m actually comfortable with.

My workflow will be get numbers displayed on 6 different single number displays, then ramp it up. Once I get comfortable with that and get that working, I will worry about scraping the data from an online source. Baby steps though.

Not even sure if arduino is the best solution here or should I be looking at a PI.

I’ll have to learn how to navigate the search function on this site from the sounds of it. Never a bad thing. :slight_smile:

Thanks again. Having fun so far.

theoretically you need 37 free pins for 30 displays, all hooked onto 7 pins and each having own ground pin then you can light them up in sequence selecting ground pin and setting the digit on the seven pins. Not the best solution but you won’t need any external hardware


This seems to be within the reach of an Arduino. It may be a bit easier to develop on a "real" computer, which I suppose the PI is more realer than the Arduino. I prefer to battle it out with the least processor I can get to do the job at hand.

If you add the extra hardware the pin count will be manageable. If you go with a software only solution, you will at least need one of the larger Arduino boards. Again, I would go with hardware assistance, if only because it might reduce your wiring headaches.

It all comes down to what kind of fun you want to have.



Yeah, new and recently improved. However, as smart as everyone here is with combined experience of centuries, a fondness for Arduino and a willingness to help however they can, there's still your friend google.

I tried

combine arduino sketches 

and also used "codes" instead of "sketches" and got a crap-ton of leads. Since the problems are always the same, just reading a few of the links or watching some YouTube will alert you to the nature of the problem.

a7

Really appreciate the feedback.

HT16K33 Was mentioned above and from my very limited understanding is probably the direction I’m going to go. Probably going to fail a few times, but we will learn along the way.

Not sure what is particularly good about the HT16K33. It does use the I²C interface which is very convenient - two pins only required.
Now the only modules I can see on Aliexpress are four digit displays and you can use eight of them on the I²C bus so if that suits your application, OK! :sunglasses:

Just thought I would jump in. The 74HC595 is a good device also. it is a digital-serial input so doesn't need to use the I2C, it only needs a few IO lines, plus you can daily-chain them together making as a big of a display-array as you want (within reason because of electrical noise).
The only downside it doesn't have BCD-to-7 Segment decoding but that can easily be done in software. But this actually becomes an advantage in that you can display more information then just numbers (for example symbols and some letters given the limitations of only 7 segment)
The 74HC595 can be used as a relatively simple way to boost the number of IO ports for many different circuits.

74HC595 is NOT a good device for LEDs. Use TPIC6B595 or TPIC6C595 for same functionality but output drive that is designed for current sinking, vs just a few mA per output to drive other logic devices.
Vcc & Gnd pin on 74HC595 are only rated 70mA Absolute max, so outputs must be limited to around 8 mA, while the TPIC parts are rated for 150 and 100mA outputs from high (12V and more) sources. Same daisy chain functionality as the low current output HC595.
I have a board with 12 of them daisychained and controlled by Atmeg328A for driving displays.


It is driving 3 LEDs/segment and 6 LEDs/segment from 12V in this video
(clock running fast time to check AM/PM and rollover code)

And as indicated, making letters/numbers is easy in code with a simple array.
A,,b,,C,,c,,d,,E,,e,,F,,g,,H,,h,,I,,i,,J,,j,,n,,o,,P,,S,,U,,u,,Y,, and 0,,1,,2,,3,,4,,5,,6,,7,,8,,9,- are all easy to do.

Maybe "e" but how on earth do you do "g"? :astonished:

9 with a tail.
segments abcdfg

Main thing about the 74HC595 and TPIC6B595 is that the arduino has to handle the display multiplexing (if needed), while the MAX7219 and HT16K33 do that themselves, might or might not be important.
I had run across the HT16K33 when looking for some 16-segment alphanumeric LED displays, it can drive eight of those, or sixteen 7-segment displays, and also scan a key matrix of up to 39 keys.