We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.
Difference between revisions of "Arduino RGB Mixer"
From wiki.openlighting.org
(→Features) |
(→Parts) |
||
Line 18: | Line 18: | ||
* A 110ohm resistor (or 100 + 10 ohm) to disable the auto-reset on the new Arduino boards. | * A 110ohm resistor (or 100 + 10 ohm) to disable the auto-reset on the new Arduino boards. | ||
* A LM35DZ temperature sensor - $2 | * A LM35DZ temperature sensor - $2 | ||
− | + | . | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Hardware== | ==Hardware== |
Revision as of 16:52, 18 May 2012
{{ #if: yes | }}{{ #if: | }}{{ #if: yes | }}{{ #if: yes | }}{{ #if: | }}{{ #if: | }}{{ #if: yes | }}{{ #if: | }}{{ #if: | }}
This page describes how to build a 2 RGB LED (6 channel) 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 along with RDM. You can either use it with single leds like in the diagram or, if you add an additional driver circuit, a set of leds like what you can buy from ikea.
Contents
Features
- Six channel PWM controller (multiple personalities enable inverting the output if needed)
- Serial number (UID) can be set remotely
Parts
For the basic RGB Mixer you need the following:
- An Arduino, I used the Duemilanove - $30
- A 110ohm resistor (or 100 + 10 ohm) to disable the auto-reset on the new Arduino boards.
- A LM35DZ temperature sensor - $2
.
Hardware
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/
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. In the picture above a switch is used for ease of programming.
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 600mA 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.
Arduino Software
The sources can be downloaded by running
git clone https://code.google.com/p/linux-lighting.arduino-rgb-mixer/ arduino-rgb-mixer
To build the sources you'll need the Arduino development environment which can be found at http://arduino.cc/en/Main/Software. Edit the Makefile and adjust the path to your Arduino installation (INSTALL_DIR) . You may also need to change the USB port path (PORT) and board specific parameters like UPLOAD_RATE, AVRDUDE_PROGRAMMER & MCU if you're using different hardware.
To build and upload the software to your Arduino run:
make make upload
If you don't want to build from source, the latest compiled version of the firmware is available at http://code.google.com/p/linux-lighting/downloads/list
Host Software
Download and install OLA (verion 0.8.9 or above) and QLC if you want a graphical frontend. 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.
The image below shows the RDM settings page in OLA for this device.
Future Work
- Expand the PWM outputs with http://www.arduino.cc/playground/Learning/TLC5940