Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

6 Digits 7-segment display

Not open for further replies.


Advanced Member level 3
Dec 4, 2011
Reaction score
Trophy points
Activity points
Please let me know that there is any driver IC for driving total 36 set of 6-digits 7-segment displays by using Arduino.

I want to make display board for 36 items and 6-digits for their quantity.


I recommend to use some addressing.
A simple way could be to use the SPI bus and a HC595 for each digit.
If each 6 digits form a complete display, then you could connect those 6 HC595 in series and build an address decoder for the 36 displays.



Search first to get the correct hardware wich can display 6 digits -7 seg
with a dedicate line to select it.
see MAX7219 - 2221
and you can use I2C bus to MCP23017 configured to get 16 output
2 MCP23017 -> 32 outputs to select One Diplay of 32

another I2C device for the remaining 4 select lines
or a PCF8574 for 8 outpus => total 32+8=40 outputs
or 4 MCU output => 32 +4 +36

Select lines are connected to the Load (CS) pin of MAX72xx

or MCP23S17 SPI instead of I2C

One MAX7219 can drive eight x 7-segment LEDs and they are cascadable. For 36 displays of 6 digits use 5 MAX7219 (or equivalents) in a chain.
Connect the LOAD pin and CLK pin to all the MAX7219s in parallel and connect DOUT of the first to DIN of the second and so on. You can then drive all the digits across all the displays with a 3 wire interface from the Arduino.


Dear betwixt,

I want to display 36 sets of 6-digits 7-segment display.

Means for item one 6 digits 7-seg display and for second item 6 digit 7-seg display and till 36 items,
each item have 6 digits to display its quanitity.

I understand that.

Each MAX7219 can drive 8 digits of 7-segments.
You need 36 x 6 = 216 digits.
So cascade 216/8 = 27 MAX7219 ICs.

The MAX7219 contains all the segment decoding and driver circuits to drive the LEDs directly and has a memory that keeps the same digits on display while you update them with new ones. You still only need 3 wires to drive them all and with a 1MHz maximum clock rate you can update all the digits at a top speed of over 500 times a second if you need to.

Alternatively, you can still use the MAX7219 but instead of joining all the LOAD pins together, you can arrange the displays in groups with a different LOAD signal to each group.


I can not imagine how this should look like. Is it a fixed panel with all 36 displays monted?
Or is it a system with variable number of displays?

The problem with SPI, IIC and other single ended busses is the power supply and the ground bounce between master and displays.
Another point is to drive all the displays with one driver.

If you have 36 displays with 6 digits each and 4 (out of 7) segment are on with a segment current of 15mA.
This makes 13A power supply current. You need star point wiring of the displays.
To avoid drive strength and ground bounce problems with the signals I recommend to use RS485/RS232 differential drivers and receivers. This may be used with SPI, UART, but not IIC.
With UART you need only one (differential) data line for all displays, but you need an addressing protocol and an intelligent receiver, maybe a tiny microcontroller...


Dear betwixt,

Thank you very much for giving description of MAX72xx ICs.

It is mean that I can use 27 MAX72xx with cascaded or as you described.

arun_190175, that makes it a far more complicated circuit. The MAX7219 and equivalents has the LED multiplexers and drivers built in. You just treat it like an 8 byte memory, whatever number you write to the memory address appears on the corresponding LED. You can also use it in addressable segment mode or 7-segment mode on a per digit basis so it could be used for example to drive 7 digits and 8 individual indicator LEDs.

Despite what I see frequently on the internet, the 74xx595 is NOT an LED driver, it should have additional current drivers before connecting to an LED display. There are many designs that rely on the display being protected only by the 595 being unable to supply enough output current to cause damage. This is bad practise and overloads the output stages of the 595.


Dear betwixt,

Again thank you, please more define this statement you stated in post 7.

"Alternatively, you can still use the MAX7219 but instead of joining all the LOAD pins together, you can arrange the displays in groups with a different LOAD signal to each group."

For this much information to be displayed in realtime, I'd seriously look at other options.

Like a cheap tablet running a custom apk to format the display, and the arduino streaming the data to it over bluetooth.

Very simple hardware, but you'd need to design the Android app. And perhaps the display needs to be larger, in which case this might not be a good idea.


the 74xx595 is NOT an LED driver, it should have additional current drivers before connecting to an LED display.
I agree with that.

I have 74LV595 on stock
Datasheet says:
* Ouput low current (to keep TTL level): 16mA @ 5V supply
* (max. continous output current: 35mA)
* max VCC/GND current 70mA. (this is the limit for displaying an "8" --> 10mA segment current)

So it is safe to drive a display with 10mA segment current. But that´s the specified limit. It is no dedicated LED driver.


Its amazing how many designs there are that use no current limiting resistor and rely on the '595 drive capability to keep the current down. Its like racing a car with the brakes applied to keep the speed down!

Dear betwixt,
Again thank you, please more define this statement you stated in post 7.
The interface is SPI so there is a Clock, Data and Enable signal, you can take the data out of one MAX7219 and in to the next. If they are all in a chain, you send the data for all the devices serially and it passes through from one IC to the next until they all have the data they need, then you raise the Enable pin to latch the data to the display drivers. The alternative is to join the Clock and Data pins along the chain but keep the Enable signals apart. In that configuration you only send the data bits for one MAX7219 at a time. All the ICs receive the same clock and data sigal but only the one with it Enable pin low will read it in, the others ignore it. It means more connections are needed and you have to add circuitry to Enable (address) one device at a time but the data transfer is quicker.

I doubt it is cheaper. The MAX7219 drives 8 x 7-segment LEDs and does not need any series resistors, in fact the brightness (duty cycle) is programmable over the SPI.

Dear betwixt,

I connected MAX7221 like this DIN-TO-DOUT DIN-TO-DOUT......through 9 ICs of MAX7221

and CLK,LOAD are common for all 9 ICs. Series of 9 ICs of MAX7221 are not running but 8 ICs are running.

What should I do for running more than 8 ICs in series?

Dear betwixt,

I connect 8 ICs (MAX7221) in series are working well and using LedControl Arduino Library bubt when I jump to 9 ICs in series it was not work.

What should I do for operate more than 8 ICs in series.

Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to