Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

19/01/2013 #1

Avatar de gino_kgx

Receptor DMX de 8 canales (con PIC16F628A)
Hola compañeros. Queria compartir este receptor DMX de 8 canales con PIC16F628A. El mismo esta posteado en el foro, dentro de otro post larguísimo sobre equipos de iluminación, pero dada su gran utilidad me gustaria abrir un tema nuevo para su facil acceso e incluso para poder mejorarlo aun más, ¿por qué no?.

El circuito básicamente consta de un receptor que utiliza el conocido SN75176 como conversor EIA-422/485, y luego interpreta 8 canales mediante el PIC. El mismo entrega 8 salidas PWM, y debido a que muchas consolas utilizan un dimmer controlado por tension , se agregó también un circuito con LM324 que transforma el valor de PWM en una tensión variable de 1 a Vcc (normalmente de 1 a 10V).

Los circuitos son los siguientes:

Receptor DMX
Receptor DMX.JPG

Conversor PWM a tensión
PWM a tensión.JPG

Al PIC se le deberá cargar el código dmx1.hex. Tal y como está, controlara los canales DMX del 1 al 8. Para poder modificar estos valores, se incluye el código para mikroBasic, en donde deberá cambiarse el valor "adres" en la siguiente parte del código:

Código:
init_timer0
init_usart

  counter = 0            ' Initialize counter

  while TRUE
      adres = 1
    '

   wend
end.
(el mismo esta llegando al final de todo)

Lei por ahi que funcionaba solo para los primeros 10 canales, yo la verdad probe con valores del 1 al 512 y todos me funcionaron correctamente.

Dejo adjuntos los PCB en PCB Wizzard (Donde estan los circuitos por separado y una version de gervit que incluye ambas partes juntas), el hex para cargar al pic (con canales del 1 al 8), y un rar que contiene el código en mikroBasic para modificar.

Creeria que con esto ya van a poder armar su receptor, dejo algunos datos extras:

**En mi caso, mi consola necesitaba valores de continua entre 1 y 12V. Eso se soluciona elevando el valor de tension de alimentación del circuito PWM to DC.

**En el código se puede ver un diseño de 9 canales (de 0 a 8). Sinceramente, no tuve tiempo de probarlo, pero creo que podria agregarse una salida mas en el pin 3 del pic.

**gervit mencionaba, que asi como muchos otros DMX comerciales, se le integre un DIP-switch de 9 llaves para modificar los canales de DMX sin necesidad de cambiar el código. Si a alguien se le ocurre alguna idea, será bienvenida, yo intente buscarle la vuelta, pero se me complica mucho sin un conversor ADC (El 16F628A no cuenta con el mismo) para poder recibir todos los estados del dip-switch en 1 solo pin del pic. Dejo un PDF adjunto que explica como trabajaria el mismo, espero que sea de ayuda y alguien se anime a incorporarlo.

**En mi proyecto en particular, y no se si en todos ocurrirá lo mismo, habia un alto nivel de parpadeo en el foco (MUY notable en valores bajos de intensidad). Al principio pensaba que era la ausencia de inductores de potencia que normalmente se conectan a la salida de la consola, antes de la lámpara, para suprimir ruidos generados en la conmutación del TRIAC. Luego comprobé que la salida DC del conversor PWM no era completamente lineal, sino que seguia un patron mas bien de un diente de sierra. Esto lo solucioné agregando capacitores de 4700uf x 16v entre cada salida del conversor (la que varia entre 1 y Vcc) y masa (con 1000uf ya era practicamente imperceptible, pero por las dudas..). Si a alguno le ocurre lo mismo y no comprende esto me avisa y hago un diagramita.

**Como "emisor casero", para probar el receptor, utilize como emisor un Arduino+SN75176 descargando la libreria "DmxSimple" de aquí. Vi otros proyectos mucho mas sencillos, que utilizan un simple conversor USB-Serie + SN75176 y un software de control de luces como FreeStyler. Quiero aclarar que esto SOLO FUNCIONA CON CONVERSORES USB - SERIE QUE SOPORTEN FTDI. Los más economicos (como el mio) no soportan FTDI, y envian solo valores entre 0, 128 y 255 (o algo por el estilo) variando de cierta forma el control de la luz, pero muy erroneamente.

Actualmente estoy proximo a acomprar alguna consola DMX para probar que todo funcione bien! Si alguno tiene alguna recomendacion a tener en cuenta para asegurar la compatibilidad de la misma con este circuito se lo agradeceria, tengo entendido que deberia funcionar con cualquier consola DMX-512.

Por último les dejo algunas imágenes del proyecto. Saludos!

Receptor DMX Listo.jpg

PWM to DC Listo.jpg

Emisor.jpg

Completo.jpg
20/01/2013 #2


Me parece muy buena la idea de abrir un post que sea solo dmx.
En lo que pueda voy a contribuir.
Con respecto al parpadeo no tuve ningun problema.

Estaria muy bueno que le podamos incorporar un sistema de llaves.
Tambien le incorpore un led ( algo simple con una resistencia no mas) a la entrada que me indica si esta llegando dmx o no.

Saludos

Posdata: Gracias Gino_kgx tambien por tus aportes.

---------- Actualizado después de 25 minutos ----------

Me olvidaba:
No se si lo viste, date una vuelta por este post: "Receptor dmx para dimmer" : Receptor dmx para dimmer
Hay algunas direcciones tambien que te pueden ser utiles.
Hay un receptor interesante con un pic atmega 8515-16pu pero primero que aca no lo consigo y despues no se como se programan esos pic
22/01/2013 #3

Avatar de dinoelectro

excelente aporte!! gracias amigo
08/03/2013 #4

Avatar de gino_kgx

Huston, tenemos problemas =P. Acabo de comprar una consola DMX-512 de las mas comunes (http://bimg2.mlstatic.com/consola-dm...532_092012.jpg) yyy.. No funciona :S. Paso a comentarles...

El circuito lo probé, como bien conte mas arriba, con un emisor Arduino + la libreria "DMX simple". Con esto funciona perfectamente, la intensidad de la luz varia bien entre 0 y 255 y se respetan los canales..

Ahora bien, cuando conecto la consola al Decodificador DMX, coloco una lampara en el canal 2 del dimmer, y cualquiera sea el canal de la consola que sube o baje, me prende y apaga el foco erroneamente. Por ejemplo: Subo el canal 8 hasta 240, y la lampara comienza a encenderse y apagarse sola, como si no sincronizaria bien con los canales o los bits..

Estube intentando modificar el codigo, para ver en que parte no esta recibiendo bien los datos, pero no obtengo resultados, no logro encontrar donde esta el problema... (Probe modificar el tmr0, el option_register, pero suena mas bien a que no identificase el break, o el startcode)..

¿A alguno de ustedes se les ocurre algo?...
16/01/2014 #5

Avatar de djwash

Hola, que paso con este circuito lo pudiste hacer andar con la consola DMX? Saludos.
06/02/2014 #6


hola el circuito anda bien yo lo uso con una consola dmx para teatro.
hace bastante que lo vengo usando y no me ha fallado.
06/02/2014 #7

Avatar de locodelafonola

gino_kgx dijo: Ver Mensaje
Huston, tenemos problemas =P. Acabo de comprar una consola DMX-512 de las mas comunes (http://bimg2.mlstatic.com/consola-dm...532_092012.jpg) yyy.. No funciona :S. Paso a comentarles...

El circuito lo probé, como bien conte mas arriba, con un emisor Arduino + la libreria "DMX simple". Con esto funciona perfectamente, la intensidad de la luz varia bien entre 0 y 255 y se respetan los canales..

Ahora bien, cuando conecto la consola al Decodificador DMX, coloco una lampara en el canal 2 del dimmer, y cualquiera sea el canal de la consola que sube o baje, me prende y apaga el foco erroneamente. Por ejemplo: Subo el canal 8 hasta 240, y la lampara comienza a encenderse y apagarse sola, como si no sincronizaria bien con los canales o los bits..

Estube intentando modificar el codigo, para ver en que parte no esta recibiendo bien los datos, pero no obtengo resultados, no logro encontrar donde esta el problema... (Probe modificar el tmr0, el option_register, pero suena mas bien a que no identificase el break, o el startcode)..

¿A alguno de ustedes se les ocurre algo?...
hola amigo mira yo recien empiezo...y en una consola dmx estandarizada..no va a funcionar.... por la simple razon que NO TIENE EL DIRECCIONAMIENTO DMX..o sea al circuito le falta las llaves mini dip... que setea los canales del receptor ..un grave fallo en el diseño... la consola no sabe o no lee los canales asignados....
08/07/2017 #8


Hola muchachos!!! Pudieron agregare el direccionamiento al circuito? El dip switch sería ...
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.