Hi i am about to under go a huge project consisting of just over 1000 RGB led's.
My goal is to create a wall of RGB leds, each color individually controlled with PWM (fading), i would like the wall to be divided up into smaller circuits in which a small number of leds will be controlled from, each smaller circuit will talk to each other via serial and all will be controlled by a PC, Arduino or DMX. I will be controlling each circuit from a Ardiuno mega.
TLC5940 - Made a circuit with 3 of these per board to control 16 RGB leds.
This was my first choice being very easy to use. But i did run into some faults, first was it is a sink driver so finding leds to suit was hard being in Australia. i tried using transistors, and they worked fine for a while but one would drop out every so often plus it took so long to solder up 48 transistors per board. The second was each one is daisy chained in a way that if one of the chips die halfway all from that point will stop working.
MAX7313 - Used 3 per board to control 16 rgb leds
i found with this chip i was unable to use high power leds, everytime i tried i blew the chip. one thing i like was the 2 wire serial unlike the TLC5940 which uses 5. i liked how each one was addresable makeing it very easy to code for.
PIC16F628 - I have not yet tried this chip
this was my latest idea, I'm not sure if it will work well in the large form but it will make the coding a lot simpler by having set code on each chip then control it all by the Arduino or PC. The chip can handle super bright leds and has plenty of information out there on them.
If anyone has any ideas to what method i should choose, or if someone has a completely new idea it would be much help.
So you're going to need 63 boards each controlling 16 LEDs to have enough for 1000 LEDs.
If it is 1 pin per chip then you would get 18, 3 chip boards to 1 arduino mega.
Then you would need 4 arduino mega boards to control it all. You could then control one board from serial, sending data to the other boards via i2c to control all the LEDs.
I am presuming that all LEDs have to be controlled individually...
The current as well
1000 RGB LEDs = 3000 LEDs
at 20mA per LED that's a grand total of 60A :o
A big project indeed.
You are wise to break it down into sub boards. However, I don't think you need all the boards to talk to each other you need a master doing the talking and all the others listening. Some sort of protocol that involves two sorts of message:-
it is a sink driver so finding leds to suit was hard being in Australia
If you're buying 1000, you're probably going to want to order direct from China, anyway, to save on the distributor markups. So you can pick pretty much whatever suits.
The crucial first question is: What do you mean by "high power LEDs"? Something like the 3W Luxeons, that use a few hundred mA per color per LED? The "display driver"-type chips are usually designed for "standard" LEDs that draw 20mA or so apiece, and definitely will blow up if connected to LEDs that use much more current.
The project is for a wall in a small night club the wall will be made from frosted glass with these LED's behind it.
Money is not the biggest issue in my plan its stability and effectiveness. Although i don't have unlimited money other wise i would have hired someone else to build it for me.
The leds i want to use are are rated at 35mA each color and forward voltage of 4.
The Sparkfun project looks really good i have never used the 74LS595 before not to sure how they work plus do they have a micro processor on every board?
Wow.. lol 35 ma with a 4v forward voltage? That will be a fun setup! lol
But I've got to second the LED's from China, you can get them with free resistors for 5v and 12v, I got 100 for $35, so you'd be looking at like $300 I'm guessing since they offer free shipping with orders. If you message them before you order they might cut you a nice deal for the huge order, I highly suggest you try that.
What's the measurement of the wall? or the tiles if it's tiles, and how many their are. Something you should look into when ordering your LED's is the Viewing angle, I haven't had much experience with that but look for the widest angle for sure, could bring down how many LED's you're going to need.
And I'm curious, what kind of power supplies are you going to be using for this bad boy?
With the 595, 35 ma per line is a bit high for most of them, make sure you get a high current chip! But here's an example of how they're used:
Do keep us updated on this project, some pictures would be uber! I've got a couple hundred LED's laying around, may look into an Arduino controlled Christmas Tree or something not so crazy
Another idea i was having is to use a micro processor of some sort with lets say 48 I/O's and connect each pin to a mosfet then to the led. It would allow me to use high voltage and current and will be a lot more reliable. I have seen mosfet arrays around on the net, but have not had the chance to try one them, anyone have an idea on what one to use ?. Also finding a suitable micro processor that can be addressable via serial and will be able to give me PWM via every channel. That might be the hard bit.
Ok i think i have decided what way to go with, using a micros in conjunction with mosfet arrays. it will be fast, reliable and can handle high currents and if i design it right i can expand from this design.
The tricky part will be find a suitable micro or micros to make up the 48 I/O, i have used atmel chips before and find them easy to use and code for. But i think i'm heading down the road of PIC processors, they seem to have everythink that is needed. Anyone have an idea of what to use ?
Also i want to try and keep each board to 16 RGB leds so thats 48 pins needed all with PWM and must be able to use a fast enough serial interface so there is no lag between boards. One more thing can i use the Arduino mega as i controller even if i'm using PIC chips on the boards ? Will they talk to each other.
you might want to look at the Cubatron projects from 3way labs. It's a project of somewhat similar scale (though 3D rather than 2D) Not open source, but pretty well described. They end up using a small microcontroller for each LED, with a largish PC send commands via a somewhat specialized network.
I realise that this might blow your budget but how about using I2C LED drivers? NXP PCA9635 has 16 channels. So you'd need 3 per module and 188 total. Are you sure that you need to use 35mA LEDs? As has been pointed out - it's a lot of current total.
You can't do physically-large projects with direct I2C connections, because I2C only works with short wires. But the PCA9635 would make a good component for building panels, with a low-cost CPU on each panel. Something like the ATTiny2313, that has both I2C and a serial interface that could be used for communication with the "central control" CPU, would be good.
It has 32 I2C addresses. And it's really cheap for the capabilities: Octopart turned up a couple of suppliers that sell it for about US$1.25 in hobbyist quantities. Unfortunately, it's only available in SMD