7 segments displays multiplexing

Hi, I started a couple topics abut this subject. After some research managed to get it working using this method:

Now my question is: how many serialized displays can I have?

The 2 possible issues that come to my mind are:

1- Is current a problem? As far as i understand only 1 segment/digits is lighted at time, so it wouldn't be a problem, am I wrong?

2- What about Light intensity? With the example above the 4 digits seem to have the same light intensity, will this change if I add more displays?

Well, these are my doubts right now. Thanks in advance.

Assuming that the software does the "obvious thing":

This way the digits have the same intensity, and 1/4 of full intensity. So if you have 8 digits each will have 1/8 th ....

There is no limit (expect how many distinct sink transistors you can drive, but that can be handled with a shift register or two.)

There is no current problem as you only turn on one 7 seg number at a time.

(edits: fixed typos)

Thank you!

Msquare: This way the digits have the same intensity, and 1/4 of full intensity. So if you have 8 digits each will have 1/8 th ....

Ouch, I wasn't counting with this. I'm planning to add 12x 4-digits matrix so I guess I will have to serialize them in groups of 2, that's a lot of I/O =( BTW, is 1/8 enough light for a regular 7 segment display?

Bright enough? It depends. 1/8 is enough if 1/1 is very bright …
1/24th might work too (doubt it), but if one cycle takes much more than 10 ms the flicker will start getting noticable. Maybe 6x8 grouping?

You could try a differnet approach. The approach is to some some latches, one to each digit. You load one 8 bit latch with the correct bitpattern for that digit, and ask the latch to “hold”. The digit now is steady and constantly lit. 8)
BUT … (there is always a backside)
now you have an ampere problem as all digits will be lit all the time. :astonished:

Or you admit that 48 7segment displays is too much for the Arduino and get some standalone Mux chips. Cant remember the number but there are some chips that will do a 4 digit display requiring minimal input fro the Arduino and multiplex the 4 digits. That way you only need current to handle 12 digits lit at one time.

Alright mate thanks for the input. I will consider the last option -my electronics knowledge is almost zero that's why I'm doing it this way right now-.

I’ve done 56 displays like that, but with all segments on together for each digit, not just 1 segment.
Check your datasheet for the digits. Most will handle more current when the current is pulsed, the pulses just have to be quick, such as:
“1/10 Duty Cycle, 0.1ms Pulse Width”
So if you are updating each digit every 0.1mS, and you hve 48 digits, that’s a refresh rate of 4.8mS, 208Hz, there will be no flicker either.

MAX7219 will control 8 common cathode digits for you. Simple SPI.transfer command to 1 of 8 registers to udpate a digit.
Can be daisy chained, so SCK-MOSI-SS can control 6 parts for 48 digits, with data out of one device feeding serial data in to the next.
Or, use a unique slave select pin for each device and send them commands individually vs a command rippling thru all parts.
No matter what, SPI.transfer() at default settings & speeds (4 MHz SPI clock) works great.

Thank you Sir, very informative.