Each of the RBG LEDs in the strip has its own LPD6803 controller chip. You send the 15-bit PWM data (5 bits for each of R, G and B) to the controller chips and they control the LEDs. Each chip uses 16 bits of data so with 50 chips in a strip you need to send 800 bits to update the strip. If you use the SPI hardware you can send 8,000,000bits per second so you can update the strip in about 0.1 mS (10,000 updates per second).
That is for driving 16 individual LEDs (or servos). It won't help at all for an addressable LED strip.
If you had 5 NON-addressable RGB strips (all RGB LEDs on the strip must show the same color) you could use the PWM shield to control each color of each strip with a transistor or MOSFET driver.
My plan was to drive 4 different strips with this, with each led strip using two of the pins, one for data and one for clock, with an external power source... That won't work?
I don't have enough pwm spaces on my board to use more than one led strip.
There will be four buttons that correspond to four adressable led strips. the strips are 6803s controlled by two wires, cin and din, with the power for the strips being controlled by a relay.
ip the buttons have led lights around them.
If a strip is off, the light will be off
if a strip is selected and being set up, the light will blink
if a strip is on, the light will be on.
what id like to be able to do is drive all four leds with different programs, while also being able to stop certain led strips (eg, to select a differnt program) to select a new program from within the menue, displayed on the lcd screen.
is one arduino capable of doing this, or should i get an arduino for each led strip, and just have the master arduino tell each strip what program to select for its led?
That sounds like a good solution, I had original planned to do data and clock pins to each zone, but I guess there isn't a need for that.
My only concern is that:
Zone 1 will be about 60 feet in length, around 600 LEDs, 200 addresses
Zone 2 will be about 30 get in length, around 300 LEDs, 100 addresses
Zones 3 and 4 will be about 10 feet in length , around 100 LEDs, 33 adresses
I plan to use the 12v rail of a 1200w psu (80amps) to drive the LEDs, but can the arduino send enough signal out to that many LEDs? (-350 addresses over 100 feet, plus probably another 25ft to get to the lights?
Qdeathstar:
That sounds like a good solution, I had original planned to do data and clock pins to each zone, but I guess there isn't a need for that.
If the software is all "bit-banged", not requiring the SPI hardware on specific pins, then that is a quite appropriate way to do it.
Qdeathstar:
I plan to use the 12v rail of a 1200w psu (80amps) to drive the LEDs, but can the Arduino send enough signal out to that many LEDs? (-350 addresses over 100 feet, plus probably another 25ft to get to the lights?
These LEDs are "chained" so that the output of one drives the input of the next, and this includes the clock line which is buffered in each chip. This means that the length is no problem.
Where you do have problems however, is in that 25 feet separation of the first LED device in the chain and the formation of the chains - whether it is possible to bring the output from one chain to the input of the next if they are essentially in a "star" formation radiating from a central point. You will almost certainly require buffering at the beginning of each chain; it could even be worth considering using a separate controller (Pro Mini) at each chain and feed them serial control data.
On the other hand, with separate clock and data lines, you can slow the clocking and as the chips have registers containing the data and are self-PWM-ing, you only have to send commands as required to change the pattern and you can use separate pin pairs from a central controller in a "star" configuration. A possibly more pressing concern is distributing power sufficiently along the runs.
Finally, you probably do not have sufficient RAM to individually address each LED, but will need code to generate patterns "on the fly" as the data is sent out.