Hello there just anothe newbie here,
I would like to know aproximately just how many 8x8 led matrix modules can one adruino can handle. I have seen 4-5 on the youtube demos. Has anyone made one up to 10 of these modules hooked up to one adruino?
Hello there just anothe newbie here,
I would like to know aproximately just how many 8x8 led matrix modules can one adruino can handle. I have seen 4-5 on the youtube demos. Has anyone made one up to 10 of these modules hooked up to one adruino?
my guesses would be how are they made up. the arduino can control one 8X8 matrix directly (16 connections to the arduino)
but then if you use the shift registers you can use just 3 pins, so independantly, i guess like 5/6
but then if you link the registers, you can link say 10/20/50? with only using 3 pins...
but they use power, so a system of each matrix having its own power supply, and then use the arduino for the control... im not sure how many it would take for noticable issues in redraw.
Depends how you are driving them, doesn't it?
With shift registers the number can be almost anything.
Say you drove the anodes from arduino pins and current limit resistors.
And you sank the cathodes with TPIC6B595's controlled with SPI pins for fast transfers (shiftout being for rookies).
Then you have 8 anodes, and 4 pins tied up with SPI (SCK, MOSI, Slave Select, MISO not used but tied up).
Can make your chain as long as the signal integrety of the Anodes, SCK, and Slave Select pins will allow, with MOSI going only to the first chip in the line.
Buffer the signals and make it quite long.
The_Doctor:
Hello there just anothe newbie here,I would like to know aproximately just how many 8x8 led matrix modules can one adruino can handle. I have seen 4-5 on the youtube demos. Has anyone made one up to 10 of these modules hooked up to one adruino?
Like Crossroads said. If you are driving them directly from the Arduino's pins, which is not advisable, you need 16 pins so you can do one and that is it.
But there are other ways to drive them and it is preferable to do so because external driver chips can supply more current and can be expanded. Many of these chips can be driven with 4 lines and since they can be daisy-chain, you can have up to whatever the manufacturer's max is with only four Arduino pins used up. For example, the MAX7219 driver can drive a 8X8 display and you can daisy-chain dozens of them. The TLC5940 can control two matrices at once, and can use PWM to control the intensity of each LED individually, but is harder to use because you have to scan the rows yourself. And you can roll your own with shift registers such as the 74HC595 or TPIC6B595. To a certain degree, both the MAX7219 and TLC5940 are complex shift registers themselves.
Some info:
http://arduino.cc/playground/Main/LEDMatrix
http://www.arduino.cc/playground/learning/TLC5940
"Like Crossroads said. If you are driving them directly from the Arduino's pins, which is not advisable, you need 16 pins so you can do one and that is it."
That is not what I was describing.
This is what I was describing - Arduino driving anode and shift registers pulling cathodes low 1 column at a time using SPI to control the shift registers.
okay guys I was planning on using shift-registers to do the individual matrixes and I figure I can get away with driving 10 display modules using just a couple of adruino pins to transfer the data. I'm still figuring out how the SPI technically works and software wise. I was thinking of hooking up a flash drive to it to hold the display data as a file. Now is it possible to also use the SPI while the flash drive is installed to feed the data to the display registers?
What I'm thinking is opening a file on flash drive, read a record, send data to display, update refresh long enough to read, get next record and repeat until end of file.
I was also thinking of taking this concept minus the flash drive( use laptop as host) to make a chain of these arduino assemblies for a big christmas lawn display.
I am also interested in the answer to this as I have also been playing around with LED matrices.
The limiting factor seems to be not so much how many matrices can you control but how fast can the arduino update them. As others have said you can use shift registers to control nearly unlimited outputs. If you want to display an arbitrary image you need to row scan your matrices and if you don't update the rows fast enough you get horrible flickering effects.
So far the biggest I have made is a 2 colour 24x8 array so effectively a 48x8 array. Further more I did two passes of each LED so I could create more colours and so this would be the equivalent of 96x8 or 12 8x8 matrix with only one colour.
I think this is about the limit you can achieve using the digitalWrite or shiftOut functions. However, it is possible to get a large speed up (at least 10 times) by bypassing these functions and setting the pin registers directly. Although this is obviously has its own pitfalls.
ElectronicsNoobie:
The limiting factor seems to be not so much how many matrices can you control but how fast can the arduino update them. As others have said you can use shift registers to control nearly unlimited outputs. If you want to display an arbitrary image you need to row scan your matrices and if you don't update the rows fast enough you get horrible flickering effects.
Just to point this out, but putting the row scanning (or column scanning) on the Arduino is a decision that you make. There are drivers such as the MAX7219 that do the row scanning themselves. You give it the data, it keeps refreshing the matrix at 100Hz or so until you tell it otherwise - it is both the high side and low side driver. So it acts basically like a coprocessor for you. Other chips like shift registers and the TLC5940 make you do that lifting because they are only low side drivers, but have other advantages (mainly cost for shift registers, great PWM capability for the TLC5940).
The limit with the MAX7219 comes if you want to update your image quickly - animations, scrolling, etc. Then you might get artifacts with larger displays because the Arduino can't update all the MAX7219s fast enough. But for static or mostly static content, you can really go nuts with those drivers.
AMS AS1100, AS1107, and AS1130 (charlieplexing) are also high-and-low-side drivers (i.e. coprocessors).
Are there any other good high-and-low-side drivers out there? These drivers make it simple.