Iluminación led de colores con DMX

En este tutorial vamos a ver cómo podemos cambiar los colores de una tira de leds utilizando el protocolo DMX.

 

¿Qué necesito?

 

1 Una tira de leds RGB

Se trata de una tira que dispone de un montón de sectores de leds de tres colores (rojo, verde y azul).

 

ledStrip leds

 

 

2 Un winkhel WK0100 o un winkhel WK0400.

Mejor el WK0100 porque así puedes enviar el programa directamente desde el IDE de arduino, utilizando un cable USB.

wk0100

3 Un controlador de iluminación led RGB DMX

 

 

dmxController

¿Cómo conecto los equipos?

La conexión de los equipos es muy sencilla, tengo que conectar el puerto RS485 (A y B) del WK0100 al controlador DMX y éste a la tira de leds tal como se muestra en el siguiente esquema:

 

 

dmx

 

 

Programa y direccionamiento

 

1. Direccionamiento de los controladores DMX

Cada controlador DMX que conecto en el bus lleva una dirección que se configura en los switches que situados en la carcasa. En este caso, como solamente tenemos un controlador y una tira de leds, su dirección debe ser el 1 ponemos en posición ON el switch número 1 y el resto en posición OFF. Si tenemos más de un controlador DMX en el bus, hay que tener en cuenta que en el protocolo DMX se direcciona por canal. Un canal es cada uno de los colores que vamos a controlar. De este modo, cada controlador DMX que quiera conectar al bus ocupa tres canales, por lo tanto el segundo DMX lleva la dirección 4, el siguiente la dirección 7 y así sucesivamente. La dirección se codifica en binario en los switches de la carcasa de cada controlador DMX.

 

2. Programa

Vamos a hacer el programa en el IDE de Arduino, puedes descargártelo de su página oficial: http://arduino.cc.

Ahora necesitss añadir la librería DMXSerial, la puedes encontrar en la web http://www.mathertel.de/Arduino/DMXSerial.aspx, para descargarla haz clic aquí. Además de los archivos .cpp y .h propios de la librería, también trae unos ejemplos pero aquí vamos a hacer un programa más sencillo.

El código es el siguiente:

 

#include <DMXSerial.h>

 

void setup() {

DMXSerial.init(DMXController);

}

 

void loop() {

DMXSerial.write(1, 255);

DMXSerial.write(2, 0);

DMXSerial.write(3, 0);

 

delay(5000);

 

DMXSerial.write(1, 255);

DMXSerial.write(2, 255);

DMXSerial.write(3, 0);

 

delay(5000);

 

DMXSerial.write(1, 0);

DMXSerial.write(2, 0);

DMXSerial.write(3, 150);

 

delay(5000);

}

 

 

En el setup se inicializa la librería, le estamos indicando que vamos a utilizarla para enviar comandos DMX, esto es imprescindible para que el programa funcione.

Solamente hay una función: write(canal, color)

El primer parámetro es el número de canal. Si queremos fijar el nivel de rojo del controlador DMX número 1, tendremos que escribir un 1. Para fijar el nivel de verde del mismo controlador DMX tenemos que poner un 2 y para fijar el nivel de verde, un 3.

El segundo parámetro es el nivel de color que queremos fijar, de 0 a 255. Cuanto menor es el nivel, menos intenso, por lo tanto los colores son más claros. Cuanto mayor es, mayor intensidad, colores más oscuros. De este modo, el negro es el R=0 G=0 B=0 (leds apagados) y el blanco es el R=255 G=255 B=255.

En el ejemplo, se pone primero el color rojo (R=255 G=0 B=0), después el color amarillo (R=255 G=255 B=0) y por último azul oscuro (R=0 G=0 B=150).

 

Puedes modificar el código para que los leds muestren los colores que quieras:

rgb colors