I am currently working on a led matrix display project. It is not prebuilt and it will be built it using individual leds. The size is 16x16.

I have been searching about on how to drive the display and I have found out that a popular way is by daisy chaining max7219 chips. But the problem is, that chip is not available here in my area.

I am thinking of using 74595 shift registers instead since they are available here. I'm planning to connect two registers to control the columns and another two to control the rows so that I can show my output through multiplexing.

Is my plan okay? Or are there other chips that are being used to drive matrix displays (I will look at my local shop if those chips are available). Thanks!!

  • \$\begingroup\$ The problem with most small LEDs is the ratio of absolute max current and rated continuous current is <= 2 like 30/20mA so multiplexing 16 compromises the average intensity meaning 1/16 of 30mA= 2mA or 10% \$\endgroup\$ Nov 27 '17 at 15:11
  • \$\begingroup\$ Here is an example of a web search instructables.com/id/32x16-LED-Matrix-Panel-and-Arduino in under less time than it took to type this. Hint: use google > images.> visit \$\endgroup\$ Nov 27 '17 at 15:17
  • \$\begingroup\$ I see. But the led matrix that he used was too small for our needs. And that the 74138 chip that he used is not available here in my area (it really sucks). But thanks, btw \$\endgroup\$
    – NMJNB
    Nov 27 '17 at 22:18
  • \$\begingroup\$ 74138 is pretty old and the SN74LVC138A is new and better. Did you know it has an RdsOn of 20 ohms active low ? 3.3V for Vcc Surely you can get this. If you use 5V for the LEDs and 3.3V for the logic \$\endgroup\$ Nov 27 '17 at 22:46
  • \$\begingroup\$ I could only hope that chip is available here. The availability of chips in my area has always been a struggle for me. Thanks for helping! \$\endgroup\$
    – NMJNB
    Nov 27 '17 at 22:50

I assume that you will be using a MCU of some description to drive the matrix. Your idea of using 74595 Register is a valid method however as some have said you may end up with current draw issues as most shift registers are limited to about 30ma, the SN74HC595 is limited to 35 just looking at the data sheet. If you have 16 LEDs driving off a row of a shift register, (for example if i I turn on a line of LEDs), only 35ma will be available to light all these LEDs. This means a very small brightness if you divide 35ma by 16 LEDs.

You may be able to get away with some fast multiplexing, only lighting up 1 LED at a time however a much more elegant solution is to use a constant current driver chip like the TLC5940. This can provide up to 130ma if I am reading the data sheet correctly. This should handle current much better than a shift register but you may still only end up with about 50% duty cycle (someone feel free to correct me).

120ma / 16 LEDs = 7.5

The 5940 also supports PWM I believe giving you brightness control.

  • \$\begingroup\$ Thanks for this. But the project was implemented succesfully using 7495 registers. The kind of multiplexing I used was based on how TV screen updates. I was contented with the brightness even when the matrix was against strong sunlight. \$\endgroup\$
    – NMJNB
    Jun 14 '18 at 1:33
  • \$\begingroup\$ Glad it worked out. Would be interested to see how you achieved this programatically? SPI? \$\endgroup\$
    – Zano
    Jun 15 '18 at 5:12
  • \$\begingroup\$ Just used the standard shiftOut function. Gladly, it was fast enough to prevent any ghosting in the display. \$\endgroup\$
    – NMJNB
    Jun 15 '18 at 9:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.