Según altos estándares industriales

Busca en nuestro Blog. Encontrarás múltiples aplicaciones, soluciones, ejemplos de código. Navega utilizando la nube de etiquetas o busca utilizando criterios específicos

DMX512 en un PLC Arduino de Industrial Shields®

Librería de Industrial Shields®

Introducción

Introducción

En este post, vamos a trabajar con luces usando la Librería de Industrial Shields DMX512. Con esta librería, podemos trabajar fácilmente con el protocolo DMX y trabajar hasta 512 canales diferentes.

El protocolo DMX512  (Conocido como DMX) es utilizado en sistemas profesionales de iluminación y máquinas de humo o de efectos especiales.

Gracias a esta comunicación, podemos enviar a cada una de las 512 direcciones un número entre 0 y 255. Usando este control, y sabiendo que algún sistema puede tener más de una dirección, podemos trabajar con una amplia gama de sistemas.

Lecturas previas

Te recomendamos que leas el siguiente blog a fin de poder entender el programa de este blog. Nosotros hemos usado este artículo para poder hacer el ejemplo:


Lecturas previas
Requisitos

Requisitos

Para trabajar con un protocolo DMX512, necesitarás lo siguiente:

Conectar el descodificador DMX512 al controlador industrial Arduino

1) Lo primero que debemos hacer es conectar el bus RS485 al descodificador. Debemos tener en cuenta que hay que poner en la posición correcta el interruptor RS485:

Descodificador DMX512 con Controlador Industrial Arduino

 2) Una vez que el Controlador Lógico Programable está correctamente configurado, tenemos que conectar los pins al codificador DMX:

Controlador Industrial Arduino

Recuerda configurar cada codificador DMX con la dirección correcta. Generalmente hay un interruptor en el descodificador. Esta configuración será importante porque con eso podremos configurar el rango de direcciones que tendrá este condificador:

Codificador DMX Industrial Arduino PLC

Software

1) En primer lugar debemos hacer es incluir la librería Arduino que incluye las funciones DMX512:

#include <DMX512.h>

Recuerda iniciar la librería DMX:

DMX512.begin();

2) Antes de enviar algo a esta biblioteca, vamos a tener que preguntar si el bus está libre. La siguiente función devuelve TRUE if the bus is idle. FALSE if is still working:

DMX512.idle();

3) Finalmente, con esta función podremos enviar información a las direcciones DMX. Ten en cuenta que esta función necesita un puntero a una variable uint8_t con el nivel de potencia (cananles), y una variable const uint16_t con el número total de canales (numChannels):

DMX512.write(channels, numChannels);

Ejemplo

El siguiente ejemplo envía información a las direcciones 1, 2 y 3 DMX. Si ponemos un codificador DMX trabajando con estas direcciones, vamos a ver una luz parpadeando lentamente.

// DMX512 library example
// by Industrial Shields

// Include the DMX512 library #include <DMX512.h>
// Define the variables for work with the addresses uint8_t channels[] = {0, 80, 160}; const uint16_t numChannels = sizeof(channels) / sizeof(uint8_t); // Setup function void setup()
{
    DMX512.begin(); } // Loop function void loop()
{
    // Ask if the DMX bus is busy
    if (DMX512.idle())
    {         // Wait some time between commands         delay(100);     // Update channels brightness     for (uint16_t i = 0; i < numChannels; ++i)
        {
            // Increase the power value of the channels
            channels[i] += 5;
        } // Update channels DMX512.write(channels, numChannels); } }


¿Estás buscando tu PLC ideal?

Mira esta comparativa con otros controladores industriales

Comparamos entradas, salidas, comunicaciones y otras características con las de algunas de las marcas relevantes


Comparación de controladores PLC industriales >>

¿Quieres más información? 

¡Solo llena el formulario! 

¡Quiero saber más!  Por favor, llene el formulario correctamente.