Paso 4: programación
He utilizado las 2 bibliotecas mencionadas en el paso 1. ShiftPWM debe modificarse ligeramente para quitar de lo comandos serie - interfirieron con la transmisión DMX.
Han incluido descargas para ambas bibliotecas, pero recomendamos visitar sitios web de los autores. Descargar las bibliotecas e importar en el IDE de Arduino. Para hacer esto, descomprimir en la carpeta de bibliotecas y reinicie el IDE. Google si tiene problemas.
Mi código es muy sencillo de seguir como las bibliotecas de manejar todo el trabajo pesado.
En primer lugar definir algunas variables. Son muy auto explicativo y defina las opciones para ShiftPWM, el número de salidas que estamos corriendo y la dirección DMX.
Como quisiera 4 unidades continuas, simplemente tuve el primer DMX start dirección y un número de unidad. Encontré que esto es más fácil que tendrás que introducir manualmente una dirección para cada unidad.
En la rutina de configuración iniciar el receptor DMX, empezar a ShiftPWM y conjunto de los resultados, establecer nuestro estado LED a mostrar que tenemos poder, borrar el contador de la luz estroboscópica, y empezar una interrupción de temporizador para el usan con LED de estado y luz estroboscópica.
En nuestra rutina de interrupción del temporizador simplemente aumentamos nuestros temporizador y strobeCount variables. No queremos hacer mucho aquí o hará que otras partes de nuestro código para funcionar correctamente.
En nuestro bucle principal, en primer lugar establecemos nuestro LED de estado. Parpadeará mientras recibe DMX y quedará sólidamente encendido 1 segundo después de perder a DMX.
A continuación establecemos las salidas a los valores deseados. Si no hemos recibido DMX durante 10 segundos y luego se desactivan todas las salidas. Si nuestro canal de luz estroboscópica es entre 20 y 220 (valor DMX max 255) entonces aplicamos los valores RGB en ráfagas a las salidas - 20 es strobe lento, 220 es rápido del estroboscópico. Si nuestro canal de luz estroboscópica está fuera de este rango entonces simplemente aplicamos los valores RGB a las salidas.
Planeo añadir un estroboscópico aleatorio pero no han tenido tiempo todavía.