driving 8x8 LED using 2 74HC595

hi! im 15 and im new to the Arduino scene.

im trying to drive an 8x8 LED matrix using 2 74HC595 Shift registers.

so far ive hooked up a 74HC595 + 330ohms for each the columns of LEDs , and 74HC595 + ULN2803A for the LED rows.

i would like to learn to drive 8x8 LEDs 1st and then expand it from here.,perhaps to 16x16 and beyond

any idea on how should i program this?i would appreciate it if you link me to some examples. :slight_smile:

so far ive hooked up a 74HC595 + 330ohms for each the columns of LEDs , and 74HC595 + ULN2803A for the LED rows.

That sounds wrong. The 2803 will only sink current and the 595 doesn't supply enough current to light more than one or two LEDs. Can you post a schematic?

The hard way Arduino Playground - DirectDriveLEDMatrix

ping pong Labs

The 'easy' way and what you want
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1265668103/2

The hard way Arduino Playground - DirectDriveLEDMatrix

ping pong http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino

Both those pages use no current limiting resistors and so will damage your arduino:-
http://www.thebox.myzen.co.uk/Tutorial/LEDs.html

OMD No resistors! I'll burn in HELL!

Ok, thanks for that.
;D

OMD No resistors! I'll burn in HELL!

Probably not, but your Arduino's processor chip indeed might. :wink:

Lefty

(DS is connecting to Pin 12 sorry)

ive posted my schematics as you requested. i dont have any software so i made it using MSpaint =P

is there anything wrong with my circuit?

I won't comment further in the matrix, have only worked with shift registers.

You can save some digital pins chaining the serial on the 595's together. You would unlatch them so there is no output, serial out the data to them then latch them. Using that you can daisy chain them to run more 8x8 displays and you'd not run out of digital pins on the Arduino. Once you've written a function the code is easy to read and maintain.

So far I've strung together 32 of 595 chips. I switched to HEF4794 due to it's higher current.

is there anything wrong with my circuit?

Not so far but it will depend on your software. When you write the multiplexing make sure that 2803 is the one that you put only one zero on at a time and put the data for that row on the top 595. This is the inverse of normal multiplexing. It is needed because the 2803 can sink enough current for 8 LEDs but the 595 can only source enough current for one LED.

... make sure that 2803 is the one that you put only one zero on at a time and put the data for that row on the top 595.

What do mean by that? Do mean that 1 led can only be turned on at a time?

Or do you mean that each pin on the 595 can only handle 20mA on each pin, and that I can only turn on 1 darlington pair at a time?

Earlier I meant I'd had 32 LEDs working which is four 595 ICs not 32 ICs. :slight_smile:

If you want to turn on one row, do you turn on a darlington pair, and switch all the top 595 output to high?

Would that cause the uln2803 to sink 20 * 8 = 160 mA? Wouldn't that current have to flow through the 595 which can only take 35 mA and damage it?

Hello! I'm trying to do something with the same configuration of two 74HC595 integrated for a 8x8 matrix. Could you please pass me the software to guide me in performance. (Sorry I'm using an automatic translator, do not speak English)