Hola!
Disculpad si no expreso correctamente lo que pretendo "diseñar", o si no he elegido el lugar más apropiado, es el primer día que estoy en este foro y desconozco los pormenores.
Soy estudiante de Mantenimiento Electrónico, en Valencia (España)y ya he terminado el curso -teórico-. Debo realizar prácticas en empresa y presentar un proyecto para terminar el ciclo.
El proyecto trata de ser una controladora (lo que seria la mesa de luces) DMX con aproximadamente 25 escáners, 10 faders, pulsador de Page y no se si podré lograr algo más (me gustaría colocar un Display LCD controlado con I2C).
He estado buscando en este foro información al respecto, pero no he dado con nada asequible a mi nivel de programación en C -que es bastante bajo- en relación con esta controladora; si información sobre receptores -pero cuando veo el programa, me pierdo con el tema de las direcciones-.
A día de hoy he encontrado información DMX muy útil en el blog de Toni Merino (Deskontrol) y me estoy familiarizando con la trama DMX a través del software Saleae y un analizador lógico made in China. Tengo dos receptores DMX -foco de led RGBW y una Cristal Ball- con los que hago pruebas.
Estoy esperando componentes para poder montar parte de este circuito y hacer pruebas ([blog.deskontrol.net mini-controlador-dmx-con-arduino -No puedo poner el linK correcto porque no está verificado que no sea spam. Se puede poner barra en los espacios o buscar estos términos con el google)).
Las pruebas que estoy haciendo ahora consiste en enviar datos con el siguiente programa, variando con un potenciómetro:
CÓDIGO:
#include <DmxSimple.h>
void setup() {
DmxSimple.usePin(3); // pin donde saldrá la trama DMX
DmxSimple.maxChannel(100); // límite de 100 canales, por defecto 512
Serial.begin(9600);
}
void loop () {
int valpot=0;
int valanal=0;
valpot = analogRead(A0); //asignación de entrada digital a variable
valanal = map(valpot, 0, 1023, 0, 255); //límite de valores a 255 en el potenciómetro
Serial.println(valanal);
for(int canal = 1; canal<20;canal++ ) {
DmxSimple.write(canal, valanal); // canal, intensidad
}
}
Pero a día de hoy la trama DMX me tiene mareado...
- Con un numero de canales máximo de 100, un recorrido por 19 canales, a una intensidad de 200 se obtiene una trama como la observada en la imagen 2. Y en detalle, la imagen 1 no respeta el protocolo DMX de Break (88us), MAB (8us), bit start a nivel bajo, 8 bits de datos y 2 bits de stop (tal vez todo esto no se vea en esta imagen, pero lo he estado observando en diferentes muestras.
En la imagen 2 se observamos cables 2, 3 y 1, GND y Vcc y la salida Tx del Arduino.
Foto: Trama_DMX_1.jpg, Trama_DMX_2.jpg
- La trama DMX sólo llega a 9 canales (?)
- Cuando modifico el valor de potenciómetro, los receptores pasan por los distintos programas que tienen pre-grabados.
- No consigo aislar, por ejemplo, en el foco, canal 2 = rojo, canal 3 = verde, canal 4 = azul, canal 5 = blanco, canal 6 = strobo... aunque ponga DmxSimple.write(4, 255)
- ...
Pero el principal problema es que no sé como aislar un solo canal y modificar la intensidad en ese canal (DmxSimple.write(4, 255) por ejemplo, cuando segun la libreria DMX del programa es lo que tendría que hacer)
En fin, si alguien ha pasado por esto o tiene alguna idea sería de gran ayuda.
Gracias de antemano,
Saludos,
Joan
Disculpad si no expreso correctamente lo que pretendo "diseñar", o si no he elegido el lugar más apropiado, es el primer día que estoy en este foro y desconozco los pormenores.
Soy estudiante de Mantenimiento Electrónico, en Valencia (España)y ya he terminado el curso -teórico-. Debo realizar prácticas en empresa y presentar un proyecto para terminar el ciclo.
El proyecto trata de ser una controladora (lo que seria la mesa de luces) DMX con aproximadamente 25 escáners, 10 faders, pulsador de Page y no se si podré lograr algo más (me gustaría colocar un Display LCD controlado con I2C).
He estado buscando en este foro información al respecto, pero no he dado con nada asequible a mi nivel de programación en C -que es bastante bajo- en relación con esta controladora; si información sobre receptores -pero cuando veo el programa, me pierdo con el tema de las direcciones-.
A día de hoy he encontrado información DMX muy útil en el blog de Toni Merino (Deskontrol) y me estoy familiarizando con la trama DMX a través del software Saleae y un analizador lógico made in China. Tengo dos receptores DMX -foco de led RGBW y una Cristal Ball- con los que hago pruebas.
Estoy esperando componentes para poder montar parte de este circuito y hacer pruebas ([blog.deskontrol.net mini-controlador-dmx-con-arduino -No puedo poner el linK correcto porque no está verificado que no sea spam. Se puede poner barra en los espacios o buscar estos términos con el google)).
Las pruebas que estoy haciendo ahora consiste en enviar datos con el siguiente programa, variando con un potenciómetro:
CÓDIGO:
#include <DmxSimple.h>
void setup() {
DmxSimple.usePin(3); // pin donde saldrá la trama DMX
DmxSimple.maxChannel(100); // límite de 100 canales, por defecto 512
Serial.begin(9600);
}
void loop () {
int valpot=0;
int valanal=0;
valpot = analogRead(A0); //asignación de entrada digital a variable
valanal = map(valpot, 0, 1023, 0, 255); //límite de valores a 255 en el potenciómetro
Serial.println(valanal);
for(int canal = 1; canal<20;canal++ ) {
DmxSimple.write(canal, valanal); // canal, intensidad
}
}
Pero a día de hoy la trama DMX me tiene mareado...
- Con un numero de canales máximo de 100, un recorrido por 19 canales, a una intensidad de 200 se obtiene una trama como la observada en la imagen 2. Y en detalle, la imagen 1 no respeta el protocolo DMX de Break (88us), MAB (8us), bit start a nivel bajo, 8 bits de datos y 2 bits de stop (tal vez todo esto no se vea en esta imagen, pero lo he estado observando en diferentes muestras.
En la imagen 2 se observamos cables 2, 3 y 1, GND y Vcc y la salida Tx del Arduino.
Foto: Trama_DMX_1.jpg, Trama_DMX_2.jpg
- La trama DMX sólo llega a 9 canales (?)
- Cuando modifico el valor de potenciómetro, los receptores pasan por los distintos programas que tienen pre-grabados.
- No consigo aislar, por ejemplo, en el foco, canal 2 = rojo, canal 3 = verde, canal 4 = azul, canal 5 = blanco, canal 6 = strobo... aunque ponga DmxSimple.write(4, 255)
- ...
Pero el principal problema es que no sé como aislar un solo canal y modificar la intensidad en ese canal (DmxSimple.write(4, 255) por ejemplo, cuando segun la libreria DMX del programa es lo que tendría que hacer)
En fin, si alguien ha pasado por esto o tiene alguna idea sería de gran ayuda.
Gracias de antemano,
Saludos,
Joan