still in development:
- software, serial communication between processing and arduino, i didnt
manage yet to pass the whole 32 bytes array (8 leds * 4 rgbw values)
without problems, this is due to incorrect frame validations i guess.
- hardware, finding an easy way to connect/disconnect everything, for now
everything is fixed through screw terminals and so we dont disconnect the
cables cause its a pain in the butt to do.
How it works
My computer is hooked up to my external soundcard (NI Audio8 DJ) used to
recieve the REC OUT from the mixer used by djs. I have a direct feed from
the sound played in the room that is sent to a processing sketch running
the Minim audio library, I use the level value as my global brightness value
for the leds, thus creating the sync'd beats for the light.
The processing sketch runs in HSB colorMode so i just make the Hue value
from a color var change, so i stay in a colorful range, which from i
calculate the different RGB values before sending them over serial to the
arduino board. For now in 'auto' mode it doesnt use the white component
cause after testing, including the white leds shows a less saturated and
too bright color in the room.
My 8 leds are 4 channels, RGBW, so i needed to control 32 PWM outputs
with high intensity outputs. To extend arduino's capabilities i used
the 16 PWM channels led drivers from TI, the TLC5940 with the existing
library. I burnt quite a few TLCs before getting them to work. It appears
that they are really sensitive to the load so be careful not to overheat them
as well i burnt some when i then supplied them with the external voltage
when the supply was off but the arduino was still feeding data to them
they would fry. Take care to always boot them with their own power supply
before feeding them data. This problem never showed up at the beginning
when i was using arduino's 5v supply, making sure they would be on when fed.
The control board uses 2 TLC5940, each driving 4 ULN2004 with pullup
resistors. It is to note that the TLC's, are current sink drivers, when
'on' they will show a 0v on the pin (thus to light regular leds), since we
use hi-power leds we just need this as a logic signal, we want a logic
5v when 'on', some people used logic inverters between the TLCs and the ULNs,
i just prefered to invert the values directly in the program, my 'send'
function on the processing sketch inverts the byte values before sending them,
i can program new animations without having to take care about working
with inverted values and it was just less soldering time. So with my inverted
signals, the TLC's when not at a logic 0v dont go logic 5v but hi-impedance
so i added pullup resistors to put a logic 5v on the input of the ULN2004.
I didnt use any LED drivers, just calculated the correct resistor values
and used 4W resistors.
complete unmounted set-up with the cables rolled around the boards.
the 4 boards with one led at each tips.
one board attached to the ceiling, we used hooks on the ceiling and loops
on the back of the boards to quickly attach/detach the set-up.
the brain of the system showing the controller board, the arduino and the PSU.
close up of the controller board showing the 2 TLC5940 in the center, each driving
4 ULN2004 with pullup resistors, and the 4W resistors behind the ULNs providing the
right voltage to the leds (i used couples of resistors sometime to have the correct
resistance value since there was no 4W resistors available for my exact needs).
The leds used are the nice CREE MC-E RGBW i bought already soldered on star pcbs
so i didnt have to worry about smd soldering. They are glued on some nice heatsinks
with some Arctic Silver thermal paste. In use they stay super cool. Since I'm
using this in a club i over-rated the warming elements of the system to avoid any
risk of something over-heating.
There are 8 leds in total and for the club we play at its much enough, i actually
usually runs the system at about a half of what it can output and i dont use the
white leds, only for stroboscopic effects, when fully continuously on the room is
very brightly lit.
Since i was using 8 hi-power leds with 4 channels each sinking 500ma at full power,
i knew i would need a lot of amps on 5v so i used a computer switching power supply,
modified to switch on all the time, with the green wire trick. google it.