It uses 2 3W RGB LEDs, 6 constant current drivers to ensure every LED gets the proper current and an ATMEGA8. It uses a RS232 interface and a RS232 <-> USB converter to communicate with the computer.
It's got three modes:
Normal mode - This allows the user to manually change red, green and blue and if the strobe frequency is more than 0 it blinks like a strobe (with adjustable duty cycle).
Fading mode - Fades between colors (hue).
Fading strobe mode - If the strobe frequency is 0 it acts like fading mode, but if it's more than 0 it blink like a strobe, with adjustable duty cycle fading the strobe color.
Step 1: Parts & Tools
- Soldering iron (to solder)
- Dremel/Dremel-like tool (to drill and cut the enclosure)
You'll also need some solder. Now on to the parts.
If you haven't got an Arduino or you want to make yourself a board for this project, you'll need:
1x 10K 1/4W Resistor
2x 1K 1/4W Resistor
4x 1uF 25V Electrolytic Capacitor
1x 100uF 25V Electrolytic Capacitor
3x 100nF 25V Multilayer Capacitor
2x 22pF 25V Ceramic Capacitor
1x 16MHz Crystal
1x ATMEGA8/ATMEGA48/ATMEGA88/ATMEGA168/ATMEGA328 (NOTE: ATMEGA48 can't have a bootloader and it's flash is too small for this project)
1x RS232 DB9 Connector
1x Power supply connector (depends on your power supply)
For the LED driver you need:
6x 1,2 Ohm 1W Resistor
6x 47 Ohm 1/4 Resistor
6x 100 Ohm Trimmer
6x 4,3V Zener Diode
I used 2 3W RGB LEDs I bought from Dealextreme.
The enclosure is from Futura Elettronica (an Italian company), product code AUS11.
I attach a ZIP with all the project files in it.
Step 2: The Arduino
Step 3: The Arduino Sketch
RGB LED pins: the digital pins where the drivers are connected. First one is Red, then Green and then Blue.
Fading hue increment: when in fading mode, this is how much to increment the hue for every cycle.
Step 4: The Constant Current Driver
The opamp changes the output voltage until the difference between + and - is 0. If we attach the - between the emitter and the resistor the voltage drop on the resistor will enter -. All we need to do is to bring + to the voltage drop we want on the resistor and the opamp will adjust the output to give this drop. For example, if the resistor is 1.2 Ohm and we put 0.36V on the + input the drop on the resistor will be 0.36V and the current flowing 300mA. I put a zener diode because it would be unpractical to regulate 5v down to 0.3V - 0.4V using a voltage divider. The zener diode drops 4.3V and the trimmer is a lot more precise. The 47 Ohm resistor is there just to limit the current to 15mA in case of a fully turned trimmer. You need one driver for every LED. The main problem with those Dealextreme LEDs is that they're common anode, so there's no way to put them in series. So I need 6 drivers (2 Red, 2 Green and 2 Blue). The microcontroller output goes to "In". I used two LM324 (Quadruple opamp) to have 8 opamps (2 unused). The transistor is BC337 (but you can change it). If you use BC337 you don't need heatsinking if the total power dissipation is less than 620mW. With a 3.5V LED this means 410mA maximum current without heatsinking. If you can, heatsink it anyway.
R1 maximum dissipation is 0.35W, so a 1/2W resistor would work, but its' better to put a 1W resistor. Why? Because the bigger the resistor, the cooler it stays. Heating causes a small drift in the resistor value wich affects the current. There's no need for precision resistors because the trimmer compensates it but the resistor must be very stable. So keep it cold!
Part list (one driver):
R1: 1.2 Ohm 1W Resistor
R2: 47 Ohm 1/4W Resistor
D1: 4.3V Zener diode
100 Ohm trimmer
And one LM324 every four drivers.
Step 5: Setting the Current Source
Step 6: The Power Supply
You need a 5V power supply. Determing the current needed is easy: first determine the current flowing in the LEDs. My StrobeDuino has got 6 LEDs, 0.3A each, so 1.8A total. Now just add 0.2A (Microcontroller current + security margin). I need a 2A power supply. I used an ATX power supply I had lying around. ATX power supplies turn on when PS_ON (pin 14) is connected to GND and turn off when it's disconnected.
Note that the 5V line MUST be loaded with something like a resistor or a lamp. I used a 68 Ohm 5W resistor i had lying around. It's between +5V and GND.
Step 7: The Enclosure
I also put a 12V fan that sucks air from inside to outside. This lowers the internal pressure and fresh air is sucked from the ventilation fissures. This approach is much better than just blowing air into the enclosure.
Then I placed some adhesive buffers on the bottom.
Step 8: The Processing Sketch
Step 9: The MIDI Console
Step 10: The Final Result
It looks good :)