7 LED Matrices to one interface kit, possible??

Hi,

I need to connect seven 8x8 LED matrices to one Arduino interface kit. Is there any ways to do this? Thank you. :)

Probably, but you haven't given enough information. Are the LEDs single-colour, RGB, or something else? Do you need to control each LED independently of all the others? Do you just need to switch them on/off, or are you looking to do PWM brightness control as well?

You also need to define what you mean by 'Arduino interface kit' it is perfectly possible to do this using external chip support like the MAX7219 for each matrix but it becomes increasingly processor bound the more direct multiplexing you do with the arduino. It also depends on what else you want to do once the 7 matrices are being refreshed and if there will be enough CPU time to do it.

Each LED has green and red. When both turn on, it will give yellow.

Yes. I need to control each LED independently and I just need to switch them On/Off.

I weren't very sure which interface kit to use for such case. If I use the external chip support (MAX7219) for each matrix like what you had recommended, is there any help on this?

Thanks for your help! :)

is there any help on this?

try this:- http://www.arduino.cc/playground/Main/MAX72XXHardware

I tried looking through this: http://www.arduino.cc/playground/Main/MAX72XXHardware. So, I need 14 MAX72xx for 7 LED matrices (2 chipsets for 1 matrix).

Now I have a question, I am using Mega 2560 controller. Each LED matrix requires SPI pins to connect to the Mega 2560. I got 7 such SPIs to connect (since I got 7 matrices) and Mega 2560 got only Pin 50 to 53 that support SPI communication.

How am I going to connect all the matrices to Meg 2560 ?? Can other Digital I/O pins be used ??

The SPI part is simple, connect all the MOSI, MISO, SCK lines in parallel.
Then use a seperate output line for the chip select to each part.

These can also be provided via shift register - one output low, transmit to a 7219 (or 7221), next one low, next device, etc.
The 7219/7221 only needs to be written to if something has changed.

The other part - are the LEDs common anode, common cathode?
I would think you’d want common cathode part like this (but in an 8x8 version)

with each chip driving half to keep the colors in sync (i.e. if this was an 8x8 part, then 1 chip controls Row/Column 1-2-3-4, and the other does Row/Column 5-6-7-8).

" The SPI part is simple, connect all the MOSI, MISO, SCK lines in parallel.
Then use a seperate output line for the chip select to each part."

Is it okay for you to eleborate more on the using of a seperate output line for the chip select to each matrix? I do not really have alot of knowlegde on this.

If shift register is used, will it affect the function (i.e. initially all LEDs are off, then I need to control each and every LED for my project to create some patterns) which I want? Is there any webpages that I can refer to?

Yes, I am using common cathode LEDs matrices. In fact, I am quite interested to know if there is any possible ways to drive the dual colour LED matrix with just only one MAX72xx.

P.S.: Thanks alot for your help & advices!

The 7219/7221 has 3 control lines - CLK, DIN, and LOAD(CS/). Connect all the CLKs together connect to arduino SCK. Connect all the DINs together and connect to arduino MOSI. Each Load(CS/) will connect unique ardiuino output pin.

To talk to a device for example:

digitalWrite(chip1CS, LOW); // select chip to send data to SPI.transfer (register_address); // send it some data SPI.transfer (data); // send it some data digitalWrite (chip1CS, HIGH); // deselect the chip

and repeat as necessary, lots of ways to do that.

"any possible ways to drive the dual colour LED matrix with just only one MAX72xx." Not really. The Max7219/7221 multiplexes the matrix at ~800 Hz, cyling thru the 8 rows or columns. If you were to try and now share that over 2 matrices, you'd have to put it into shutdown mode, send it 8 registers worth of data, switch over the LED control lines, take it out of shutdown mode, let it display. Repeat. You could have the 8 Segment lines driving a pair of 74LS244 type parts and control which device had active Segment lines. Connect the Digit lines in parallel. Not sure that could be done and still have the visual effect of 2 displays both being on, I think you'd end up with a very flickery looking display. Especially if trying to do 7 pairs of these at the same time.

If you wanted them to obviously flip back & forth, then I'd say ok.

CrossRoads: The SPI part is simple, connect all the MOSI, MISO, SCK lines in parallel.

CrossRoads: The 7219/7221 has 3 control lines - CLK, DIN, and LOAD(CS/). Connect all the CLKs together connect to arduino SCK. Connect all the DINs together and connect to arduino MOSI.

Sorry, I am quite confused with this part. So, it means that I will connect all CLKs and DINs from all the chipsets to SCK and MOSI respectively? This seems like directly going to Arduino board without any SPI connected in between. How about the SPI?

CrossRoads: Each Load(CS/) will connect unique ardiuino output pin.

To talk to a device for example:

digitalWrite(chip1CS, LOW); // select chip to send data to SPI.transfer (register_address); // send it some data SPI.transfer (data); // send it some data digitalWrite (chip1CS, HIGH); // deselect the chip

Each LED matrix requires 2 chipsets. Connection wise, I will connect 14 chipsets to 14 different Arduino Digital I/O Pins? For programming, I will need to select 2 chipsets to control 1 LED matrix?

"How about the SPI?" SCK, MOSI, MISO - that is the SPI.

"Connection wise, I will connect 14 chipsets to 14 different Arduino Digital I/O Pins?"

Yes, each 7219 needs its chipselect pin connected to an Arduino pin. Analog pins can be used as digital I/O pins also (A0-A5 are D14-D19 on an Uno for example).

"For programming, I will need to select 2 chipsets to control 1 LED matrix?" Yes, since the matrix is 2 8x8 matrices in one package.

Probably easier to have each 7219 control 1/2 the matrix (green/red, green/red, green/red, green/red) so that yellow is controlled by same 7219 (versus having to coordinate red from one 7219 and green from the other to make yellow).