We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.
Arduino RGB Mixer
From wiki.openlighting.org
{{ #if: yes | }}{{ #if: | }}{{ #if: yes | }}{{ #if: yes | }}{{ #if: | }}{{ #if: | }}{{ #if: yes | }}{{ #if: | }}{{ #if: | }}
This page describes how to build a LED RGB color mixer using an Arduino and OLA and QLC. The Arduino is programed to emulate a DMX USB Pro and implements the USB Protocol Extensions and well as RDM.
Contents
Features
- Six channel PWM controller
- DMX Address and Device label can be set using RDM
- Identify led (useful when multiple devices are in use so you can identify which device is which)
- Power cycle counter
- Optional Temperature Sensor
Parts
- LED strip lights, Ikea has a set which are reasonably cheap and come with mounting brackets: Dioder - $50
- A power supply for the led lights, make sure it can provide enough current for the amount of leds you plan to use. You can use the one from the Ikea lights.
- An Arduino, I used the Duemilanove - $30
- Parts to make a driver circuit: 3 x 2N2222 transistors, 3x 2.2k resistors, small PCB - $10
- A 110ohm resistor (or 100 + 10 ohm) to disable the auto-reset on the new Arduino boards.
- A LM35DZ temperature sensor - $2
- A LED to indicate the device is in identify mode - 50c
In the example above the Ikea leds run from 12V and draw ~420mA when all colors are on so you need to make sure the driver circuit and power supply is sized correctly.
Hardware
LED Driver
The LEDs use 12V while the Arduino supplies 5V so we need to make a driver circuit. The one below should be good up to 800mA per channel or so.
You need one of these per channel. The inputs should be connected to the PWM pins on the Arduino (pins 3, 5, 6, 9, 10, 11 on a Duemilanove). Make sure you connect the ground of both circuits.
Identify LED
RDM allows a device to be put into 'identify mode'. The RGB Mixer uses an LED to indicate when identify mode is enabled. This LED should be connected between pins 12 and ground.
Temperature Sensor
The output of the LM35 should be connected to analog pin 0 as shown on http://www.danielandrade.net/2008/07/05/temperature-sensor-arduino/
Arduino Software
The sources can be downloaded by running
git clone http://git.openlighting.org/rgb_mixer/
To build the sources you'll need the Arduino development environment. That can be found at http://arduino.cc/en/Main/Software.
The latest compiled version of the firmware is available at http://code.google.com/p/linux-lighting/downloads/list
Disable Auto-Reset
The newer Ardiuno boards auto-reset when the serial connection is established which causes problems with OLA. To disable the auto-reset connect a 110 ohm resistor between the RESET and 5V pins. Note that you need to remove this when you program your Arduino.
Host Software
Download and install OLA and either ola-examples or QLC. See the documentation for either/both products for getting it installed. The device should show up as a DMX USB Pro, the first three channel control the red, green & blue intensities.
Future Work
- Expand the PWM outputs with http://www.arduino.cc/playground/Learning/TLC5940