Control 8x8 LED dot matrix with 74HC595N IC's

Hi there, I was wondering how I should go about programming an arduino to drive a 8x8 LED matrix with two 74HC595N IC's.

The schematic I have looks like this

Thanks

  • Mackan

Well, that schematic is not an 8x8 matrix of LEDs

It currently shows 8 lines, each with 8 LED's in parallel.

Assuming you fix that, and you are multiplexing the array, the 74HC595N can only source or sink about 8mA per pin - so the LED's are not going to be very bright.

If you are happy with that, then you'd need to clock out bits to drive one column and the leds on that column then repeat for all columns. Preferably do that for all 8 columns faster than 30 times per second.

Yours,
TonyWilk

I was planning on doing some kind of charlieplexing with them as I have small amounts of experience with that on a 5x5 version without the shift registers.

Regarding the 8mA per pin, how would I go about switching it up so that the LEDs are brighter?

I forgot to mention in my original post that I am pretty new to arduino and more advanced electronics in general.

Mackan:
I was planning on doing some kind of charlieplexing with them

Why? With two 8 bit latches, you have a nearly ideal driver for an 8x8 array. As it is, you will have a problem with uneven current depending on how many LEDs are on at the same time per row/column. You need to add driver transistors to fix that. The MOS outputs of the latch are too "soft" to drive 8 LEDs from one pin.

Why not just use a matrix driver IC?

Ok, when the 8x8 array is multiplexed you will source current for 8 LEDs at a time ( all in one column for example) and turn on a current sink for that column.

The problem is that the current sink (the 'column drive') has to be able to handle 8 LEDs at once.

So, you could use the 74HC595N outputs to source the 8 leds, but the other 8 column drives really want higher current capability.

You could do this by adding 8 transistors to the outputs of the second 74HC595N, either with separate transistors or a lot easier with a ULN2803 (which is 8 transistors in a chip).

There's also the MAX7219 which does everything for you, the multiplexing and driving LEDs.

Yours,
TonyWilk

TonyWilk:
There's also the MAX7219 which does everything for you, the multiplexing and driving LEDs.

I'll look into the MAX7219

The MAX7219 is a bit over my budget here, I don't really want to spend $10 for one IC..

aarg:
Why? With two 8 bit latches, you have a nearly ideal driver for an 8x8 array. As it is, you will have a problem with uneven current depending on how many LEDs are on at the same time per row/column. You need to add driver transistors to fix that. The MOS outputs of the latch are too "soft" to drive 8 LEDs from one pin.

Why not just use a matrix driver IC?

How would I go about using the driver transistors? Is there any model you recommend?

Mackan:
The MAX7219 is a bit over my budget here, I don't really want to spend $10 for one IC..

aarg:
MAX7219 Dot led matrix Module MCU control LED Display modules for Arduino | eBay

That comes with a dot matrix too though, I kinda want to solder the LEDs myself to gain the experience from it

Mackan:
How would I go about using the driver transistors? Is there any model you recommend?

As I mentioned: 8-Channel ULN2803

Look at the datasheet for it, there's 8 transistors in there - just wire the inputs directly to the outputs of the 74HC595N and use it for the 'column sinks' of you 8x8 array.

Yours,
TonyWilk