Hello. I am to help a person to build a 10 x 10 LED matrix in 3 colours. So he got a Arduino and I thought it could be done with 60 chips of "HEF4794B" from Philips in a daisy chain.
Is it then possible to send the Arduino a serial signal so i can get any pattern I want on the 10 x 10 LED matrix in 3 colours? Can somebody give me a description on how to connect 3 of "HEF4794B" to the Arduino in a daisy chain? Then I think I can understand how to connect up the rest of the 57 "HEF4794B" What would the serial code look like that I am to send to the Arduino? How do I change the code so it read the serial data, and put it in the variable "dato" , that I want to be able to change once every second? Sorry to ask so many questions. But is it possible? Or is there a better solution? This? http://www.arduino.cc/playground/Main/LEDMatrix http://www.arduino.cc/playground/LEDMatrix/Max7219
When you daisy chain chips like the HEF4794B you want to connect the shift output of the first one to the data input of the second one and so on. You connect all of their clocks to the same clock output pin. If you have 60 of them I suspect that will be too much load and you may need to divide them into smaller groups and use buffers on the clock signal. Likewise with the store pin. Connect them all together. After you have shifted 8*(number of packages) bits, hit the store.
The advantage of drivers like the MAX7219 is in letting you drive 64 leds with only a single package. The disadvantage is that they do it by scanning through them so a given LED can only be on 1/8th of the time. This limits how much light you can put out. It is plenty for a display, but if you are making a light it might not be enough. The addressing would get a little funny, but you could drive all the LEDs with just 5 MAX7219 chips, 6 would make the addressing a little more straightforward.
Inside the Arduino IDE you can get to some example sketches. There is one for basic serial communication that shows how to read a character from the input and do something with it. At 9600 baud you can send about 1000 characters/second, so you won't have a problem with datarate. You could send a 1 or a 0 for each of the 300 leds and still have enough speed.
When you daisy chain chips like the HEF4794B you want to connect the shift output of the first one to the data input of the second one and so on. You connect all of their clocks to the same clock output pin. If you have 60 of them I suspect that will be too much load and you may need to divide them into smaller groups and use buffers on the clock signal. Likewise with the store pin. Connect them all together. After you have shifted 8*(number of packages) bits, hit the store.
If anybody get time over or know a good link to code and decsription
that is similar to what i need please let me know.
If i'm not wrong, chips like 7219 can only output a 1 or 0 state to a pin, so if you use it with RGB leds, you could only have a limited amount of color (27?), not the millions you could have with a PWM output on each pin...
I still haven't found a mux/demux that could send PWM on each output... Something like a serial in and 8 PWM outputs.... that would just be awesome.
For multicolor use you might look at a TLC5940NT. Serial in, 16 channels of 12 bit PWM out. I'd tell you how they work with Arduinos, but my order got messed up, canceled, and now everyone is out of stock until more are made on April 18th.
This is more expensive than the binary matrix method, about $0.25 per channel in small quantities, but its a pretty slick part
I put together a 2' x 4' sign with about 1800 LED's driven with PWM, and these chips worked fine. They're kind of a swiss army knife with a somewhat intimidating 80 page manual (maybe I'm wrong - this is just from memory).
It's not an Arduino driving it, (SBC with an ARM - 9) but an Arduino would probably drive 30 or so chips with no problem. I think I had some contact with TI and they said there was definitely a limit to how many you could daisy chain - the manual suggests 40 I think. I never did establish the exact reason - I think it's clock skew issues with some kind of delays multiplying. Just use a new Arduino pin, and a new chain, for more LED's. You would need a new chip select for each chain too.
Try out the SPI port on the Arduino - that will buy some speed I bet - after wading through the datasheet.
Anyway - the TI chips are not for the faint of heart but if you put some work into figuring them out, they'll work fine.
there are schematics and a video for something similar that was made by engineering students at MIT.Here's the link. On the downloads page they give you the gerbers, schematics an an excellent manuakl that explains their design process and the choice of IC's.