TODOPIC
Mecatrónica => DMX512 - Diseños y Proyectos => Mensaje iniciado por: esteban_k en 08 de Julio de 2010, 17:02:22
-
Hola, estoy interesado en armar unos Par56 de Led Dmx, que tengan 3 o 4 Pwm, soy bastante nuevo en esto, pero estoy con muchas ganas de aprender!!!.. estoy viendo bastante info en el foro. ahora mi pregunta es si ya alguno de ustdes armo alguno como para empezar a probar. Mientaras sigo buscando info por todos ladoss...
Desde ya muchas gracias!!!!.... Espero que alguno me pueda dar una ayuda.....
MUchas Gracias
Esteban...
Aca le dejos unas fotos del trabajo terminadoo... hice un lio terrible,,, falta de experiencia en el foro, asi que mil disculpas....
Todo lo saque de un Web alemana (Esquematico y Asm). es Pwm de 4 Canales.. yo solo uso 3 para el Rgb., estoy trabajando en integrarle un Dip para direccionar el Dmx y un Strobo.. Ahora la direccion Dmx es Fija va de 1 a 4. el que me quiera dar una mano mejor. igual seguire luchando, al que le interesa el proyecto subo el Hex.
Yo estoy usando leds RGB de Potencia. a la salidas del Pic les puse TIp 122 con sus respectiva resistencia de base....
Asi que buenoo al que le intersa le paso mas info... y esta semana arranco con el tema del strobo y el Dip. aclaro que soy nuevo en esto de los PIc. estoy con tutoriales de asm y viendo otros programas como para tener ideass...
Saludos..
-
:)
Sería genial!!!!
-
[
Hola, estoy interesado en armar unos Par56 de Led Dmx, que tengan 3 o 4 Pwm, soy bastante nuevo en esto, pero estoy con muchas ganas de aprender!!!.. estoy viendo bastante info en el foro. ahora mi pregunta es si ya alguno de ustdes armo alguno como para empezar a probar. Mientaras sigo buscando info por todos ladoss...
Desde ya muchas gracias!!!!.... Espero que alguno me pueda dar una ayuda.....
MUchas Gracias
Esteban...
[/quote]
-
Hola Esteban, bienvenido al foro y a la iluminacion DMX!!!
Si podes colocar el codigo en asm estaria fantastico!, yo tengo posteado el control de un par de motores PAP con dmx, está el proyecto completo
Saludos!
Norberto
-
Hola Esteban, bienvenido al foro y a la iluminacion DMX!!!
Si podes colocar el codigo en asm estaria fantastico!, yo tengo posteado el control de un par de motores PAP con dmx, está el proyecto completo
Saludos!
Norberto
Ahi te dejo el codigo.... tenes alguna idea de como generar un Strobo?.... Saludos y gracias...
;4 chan DMX, PWM output
;On RB5, RB6, RB7, RA3
;Thijs Assies
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC & _LVP_OFF
list P=16F628A
#INCLUDE <P16F628a.INC>
#DEFINE OUT1 PORTB,5
#DEFINE OUT2 PORTB,6
#DEFINE OUT3 PORTB,7
#DEFINE OUT4 PORTA,3
#DEFINE RCLED PORTB,3 ;green led
#DEFINE RX PORTB,1
#DEFINE ERRLED PORTB,4 ;red led
#DEFINE BREAK DMX_reg,0
#DEFINE STARTCODE DMX_reg,1
#DEFINE MOVED DMX_reg,2
#DEFINE ADDR9 DMX_reg,3
#DEFINE RC9 DMX_reg,4
DMX_reg EQU 020h
Reg1 EQU 021h
Reg2 EQU 022h
Reg3 EQU 023h
Reg4 EQU 024h
W_SAVE EQU 026h
S_SAVE EQU 027h
P_SAVE EQU 028h
pwmcounter EQU 029h
flag EQU 02Ah
D_ADDR EQU 02Bh
temp EQU 02Ch
R_ADDR EQU 02Dh
Offset EQU 02Eh
temp2 EQU 02Fh
ORG 00h
GOTO INIT ;Initialize PIC
ORG 04h ;Interrupt vector
MOVWF W_SAVE ;save context,
MOVF STATUS,W ;save STATUS, PCLATH & W
MOVWF S_SAVE
MOVF PCLATH,W
MOVWF P_SAVE
GOTO INTHANDLER
INIT
MOVLW 0x07 ;turn analog comparators off
MOVWF CMCON
CLRF PORTA
CLRF PORTB
BSF STATUS,RP0 ;Select Bank1
CLRF TRISA ;porta output
CLRF TRISB ;portb output
BSF TRISB,1 ;B1 input (UART Recieve)
MOVLW 04h
MOVWF SPBRG ;Set baud rate
BSF TXSTA,BRGH ;high speed
BCF TXSTA,SYNC ;Async connection
CLRF PIE1 ;clear other interrupts
BSF PIE1,RCIE ;Set recieve interrupt
BCF STATUS,RP0 ;Return to bank0
BSF RCSTA,RX9 ;Enable 9bit data
MOVF RCREG,W ;clear RCREG FIFO
MOVF RCREG,W
MOVF RCREG,W
BSF RCSTA,CREN ;Enable recieve
BSF RCSTA,SPEN ;Enable UART
BSF INTCON,PEIE ;Enable interrupts
BSF INTCON,GIE
BCF RCLED ;because RA4 is open drain, set means NOT on
BCF ERRLED
CLRF Reg1
CLRF Reg2
CLRF Reg3
CLRF Reg4
CLRF D_ADDR ;set our dmx adress to 0
BCF ADDR9
GOTO MAIN ;Goto Main Program
MAIN
BCF RCLED
BCF ERRLED
MOVLW 0FFh
MOVWF pwmcounter
BCF OUT1
BCF OUT2
BCF OUT3
BCF OUT4
CALL PWM_CYCLE
GOTO MAIN
PWM_CYCLE
MOVF Reg1,W
XORWF pwmcounter,W
BTFSC STATUS,Z
BSF OUT1
MOVF Reg2,W
XORWF pwmcounter,W
BTFSC STATUS,Z
BSF OUT2
MOVF Reg3,W
XORWF pwmcounter,W
BTFSC STATUS,Z
BSF OUT3
MOVF Reg4,W
XORWF pwmcounter,W
BTFSC STATUS,Z
BSF OUT4
DECFSZ pwmcounter
GOTO PWM_CYCLE
RETURN
INTRETURN
MOVF P_SAVE,W ;restore context
MOVWF PCLATH
MOVF S_SAVE,W
MOVWF STATUS
SWAPF W_SAVE,F
SWAPF W_SAVE,W
RETFIE
INTHANDLER
BTFSS PIR1,RCIF
GOTO INTRETURN
GOTO DMX
DMX
BSF ERRLED
BTFSC RCSTA,OERR
GOTO OVERRUN
BTFSC RCSTA,FERR ;Check for framing error
GOTO FRAME
BTFSS BREAK ;check if break has passed
GOTO RET
BTFSS STARTCODE ;has a startcode passed ?
GOTO SC ;yes: go check for valid startcode
BTFSC STARTCODE
GOTO CHANNEL
RET
MOVF RCREG,W
GOTO INTRETURN
OVERRUN
BCF RCSTA,SPEN
BSF RCSTA,SPEN
MOVF RCREG,W
BSF ERRLED
GOTO LAST
FRAME
BCF BREAK
BCF STARTCODE
BCF RC9
CLRF R_ADDR
CLRF Offset
BTFSS RCSTA,RX9D
BSF BREAK
MOVF RCREG,W
GOTO INTRETURN
SC
MOVF RCREG,W
XORLW 00h
BTFSC STATUS,Z
BSF STARTCODE
GOTO INTRETURN
INCREASE
INCF R_ADDR
BTFSC STATUS,Z
BSF RC9
RETURN
CHANNEL
MOVF Offset,W
XORLW 00h ;check if offset != 0
BTFSS STATUS,Z
GOTO CHAN
MOVF R_ADDR,W ;else: check if chans match
XORWF D_ADDR,W
BTFSC STATUS,Z
GOTO NINTH ;if so: check for 9th bit
CALL INCREASE
GOTO RET ;if not: just return from interrupt
NINTH
BTFSC ADDR9
GOTO TRUE
MOVF RCREG,W
GOTO FALSE
TRUE ;our 9th bit is set
BTFSC RC9
GOTO CHAN
CALL INCREASE
GOTO RET
FALSE
BTFSS RC9
GOTO CHAN
CALL INCREASE
GOTO RET
CHAN
; BCF RCLED
INCF Offset
MOVF Offset,W
XORLW 01h ;check if count = 0
BTFSC STATUS,Z
GOTO CHAN1
MOVF Offset,W
XORLW 02h
BTFSC STATUS,Z
GOTO CHAN2
MOVF Offset,W
XORLW 03h
BTFSC STATUS,Z
GOTO CHAN3
MOVF Offset,W
XORLW 04h
BTFSC STATUS,Z
GOTO CHAN4
MOVF Offset,W
XORLW 05h
BTFSC STATUS,Z
GOTO LAST
CHAN1
MOVF RCREG,W
MOVWF Reg1
CALL INCREASE
GOTO INTRETURN
CHAN2
MOVF RCREG,W
MOVWF Reg2
CALL INCREASE
GOTO INTRETURN
CHAN3
MOVF RCREG,W
MOVWF Reg3
CALL INCREASE
GOTO INTRETURN
CHAN4
MOVF RCREG,W
MOVWF Reg4
CALL INCREASE
GOTO INTRETURN
LAST
BCF BREAK
BCF STARTCODE
CLRF Offset
GOTO INTRETURN
END
-
Hola, a que te referis con strobo?, una lampara de xenon para flash, o al destello de led´s?
yo armé un control de los flash comerciales de 1500w que no poseen DMX, pero tienen una entrada de disparo (plug) con 10Voltios...
Norberto
-
Hola Esteban, gracias por el programa!
Si bien, lo he leido rapidamente, me gustaria que pruebes en tu circuito, aprovechando que ya lo tienes armado, y reemplaces en el codigo
CHAN
; BCF RCLED
INCF Offset
MOVF Offset,W
XORLW 01h ;check if count = 0
BTFSC STATUS,Z
GOTO CHAN1
por, por ejemplo 5, en el siguiente 6, 7 y 8
y verificar si desde la consola, actuan justamente los canales 5,6,7 y 8...
de ser así, facilmente se puede adaptar los dip swich...
si podes, hace la prueba, si no funciona,tendre que dedicarle tiempo al programa ok?
:mrgreen:
-
Hola!!!!..
Recien cambie el programa tal cual lo mencionaste. y si,, ahora tengo los led en el canal 5-6-7 (el cuarto canal en este caso el 8 por el momento no lo uso)... asi que bueno espero a ver si me podes seguir ayudando.. y muchas gracias.... de apoco voy aprendiendo un poco mas....
Saludos-- Esteban---
Hola Esteban, gracias por el programa!
Si bien, lo he leido rapidamente, me gustaria que pruebes en tu circuito, aprovechando que ya lo tienes armado, y reemplaces en el codigo
CHAN
; BCF RCLED
INCF Offset
MOVF Offset,W
XORLW 01h ;check if count = 0
BTFSC STATUS,Z
GOTO CHAN1
por, por ejemplo 5, en el siguiente 6, 7 y 8
y verificar si desde la consola, actuan justamente los canales 5,6,7 y 8...
de ser así, facilmente se puede adaptar los dip swich...
si podes, hace la prueba, si no funciona,tendre que dedicarle tiempo al programa ok?
:mrgreen:
-
Claro me refiero al destello del led.. muy similar al control que decis vos... yo use un contro de Flash Geni alguna vez... lo que deseo yo es que por un canal dmx pueda regular la velocidad del destello!!!! de (0 a 225 creo que es)..... lo que comunmente se denomina strobo!!!!... . otra cosa.. es muy complicado hacer el control del flash ya que tengo uno ahi con Entrada plug para controlador,,, de curioso pregunto jajaj. nunca me lo puse a averiguar....
saludos.. y muchas gracias por colaborar....
Hola, a que te referis con strobo?, una lampara de xenon para flash, o al destello de led´s?
yo armé un control de los flash comerciales de 1500w que no poseen DMX, pero tienen una entrada de disparo (plug) con 10Voltios...
Norberto
-
Hola Esteban, gracias por la prueba! :-/
Entonces el cambio es muy simple! ;-)
Hay que colocar en los pines libre, seteados como entradas (tris a uno), donde se colocaran los dipswich con una resistencia de 10k a +5v
esto determinará la "direccion" DMX del primer canal
Hay que "leer" las posiciones de los dip swich, guardarlos en dir_DMX (será un registro que hay que definir), ademas, de configurar un poquito los datos leidos, ya que no disponemos de los pines que quedan, de manera ordenada.... :?
y en el programa, cambiar
CHAN
; BCF RCLED
INCF Offset
MOVF Offset,W
XORWF DIR_DMX,w ;check if count = 0
BTFSC STATUS,Z
GOTO CHAN1
y para el canal siguiente, incf DIR_DMX
Luego te lo escribo con tiempo ok? pero con tu prueba, ya es un gran adelanto :mrgreen:
Norberto
-
Hola Esteban, gracias por la prueba! :-/
Entonces el cambio es muy simple! ;-)
Hay que colocar en los pines libre, seteados como entradas (tris a uno), donde se colocaran los dipswich con una resistencia de 10k a +5v
esto determinará la "direccion" DMX del primer canal
Hay que "leer" las posiciones de los dip swich, guardarlos en dir_DMX (será un registro que hay que definir), ademas, de configurar un poquito los datos leidos, ya que no disponemos de los pines que quedan, de manera ordenada.... :?
y en el programa, cambiar
CHAN
; BCF RCLED
INCF Offset
MOVF Offset,W
XORWF DIR_DMX,w ;check if count = 0
BTFSC STATUS,Z
GOTO CHAN1
y para el canal siguiente, incf DIR_DMX
Luego te lo escribo con tiempo ok? pero con tu prueba, ya es un gran adelanto :mrgreen:
Norberto
Bueno algo voy comprendiendo, asi me lo voy a poner a ver bien... cuando puedas espero tu proxima ayuda... Muchismas Gracias!!!!..
Saludos.. :)
Esteban...
-
Que tal amigos!
seria muy interesante si dieran mas detalles del circuito o poner un Esquemas,
aparte con que pic lo esta probando?
a ver Noberto si te pone hacer el esquema y dime con que pic es, asi este proyectos le serviria a otros o ami :D :D
Saludos
-
Que tal amigos!
seria muy interesante si dieran mas detalles del circuito o poner un Esquemas,
aparte con que pic lo esta probando?
a ver Noberto si te pone hacer el esquema y dime con que pic es, asi este proyectos le serviria a otros o ami :D :D
Saludos
Hola es un Pic 16f628A... ahi subo el esquema... lo que si el out4 esta mal definida en diagrama.. es otra pata del pic.. yo uso 1-2-3--- (http://img101.imageshack.us/img101/5765/rgbwdmx.jpg)
-
Muchas gracias !!
Lo tendre en cuenta, cuando tenga tiempo lo retocare.
a ver Si Norberto podria definir los DIP Switch .
Saludos
-
Hola Rafa, :-/ tendriamos que emplear RA0, RA1, RA2, RA3, RA4 como entradas de lectura de los dip, ademas de RB2, RB3, RB4 y RB5 para tener las nueve entradas de lecturas de direccion...
Otra seria emplear un cd4511 como exitador de display, 4 lineas BCD, y 3 para los catodos de display, mas dos de pulsadores para subir o bajar la direccion... de las dos formas, son 9 lineas....
una es simple, la otra mas PRO :mrgreen:
RB1 si o si es la entrada de datos... y salida a las etapas de potencia, asignamos 3 cualquiera que nos queden ok? :mrgreen:
Norberto
-
Hola Rafa, :-/ tendriamos que emplear RA0, RA1, RA2, RA3, RA4 como entradas de lectura de los dip, ademas de RB2, RB3, RB4 y RB5 para tener las nueve entradas de lecturas de direccion...
Otra seria emplear un cd4511 como exitador de display, 4 lineas BCD, y 3 para los catodos de display, mas dos de pulsadores para subir o bajar la direccion... de las dos formas, son 9 lineas....
una es simple, la otra mas PRO :mrgreen:
RB1 si o si es la entrada de datos... y salida a las etapas de potencia, asignamos 3 cualquiera que nos queden ok? :mrgreen:
Norberto
Hola Norberto, una vez me comentaste que queria hacer una pista con LED RGB y este te vendria bien, aunque a mi lo contrario quiero usar RGBW, Led rojo,azul,verde y blanco , ya tengo uno pero el Blanco se controla solo con efecto Strobocopio Dimmer, en este tengo la idea de montar en tablero de Plexiglass (1metro x 50centimetro) osea que quiero usarlo para el Salon de mi casa :mrgreen:
por DIP lo veo mas facil con claro para mi, ya que como tu comenta es laborioso para mi.
de todas forma cualquier propuesta se agradece. del momento que he cambiado de trabajo no tengo muchos tiempo ya que viajos muchos :?
Un gran abrazo Norberto
-
Ok Rafael, me voy a poner a escribir algo, y que Esteban lo prueba y nos comenta :mrgreen:
Ya que está en 4 canales, podemos usarlo para aplixar como dices tú... o tambien, colocar el cuarto canal con led ultravioleta, para efectos de "luz negra" ;-)
Norberto
-
Amigos, que les parece si colocamos un pulsador, que sea "reset" y haga leer la direccion 1, le mandamos el dato, que será la nueva dirección, por ejemplo "25", la consola de control nos está indicando ese dato, entonces, mantenemos pulsado el boton, y "graba" en la eprom, la nueva direccion... ahorramos pines, dip swich... me parece seria interesante...
Anoche construí el circuito y funciona... cuando pueda, hago los arreglos... :mrgreen:
Norberto
-
:-/ :-/ muchas gracias Norberto! me alegro muchos, no importa como lo haga lo importante es el aporte.
Lastima que no estoy en casa para ir practicando, no tengo nada instalado en esta PC(Laptop) pero el Sabado que viene estare en casa y voy a probar :-/ :-/ :-/
Un gran abrazo
-
Amigos, que les parece si colocamos un pulsador, que sea "reset" y haga leer la direccion 1, le mandamos el dato, que será la nueva dirección, por ejemplo "25", la consola de control nos está indicando ese dato, entonces, mantenemos pulsado el boton, y "graba" en la eprom, la nueva direccion... ahorramos pines, dip swich... me parece seria interesante...
Anoche construí el circuito y funciona... cuando pueda, hago los arreglos... :mrgreen:
Norberto
Buenisoooo... Gracias por todo!!!! Cuando quieras voy probando.... Saludos... (se esta poniendo muy bueno esto)....
-
Ya tengo algo diseñado... ahora estoy con otros trabajitos.... pero mi consola DMX, es parecida a la de Esteban... tiene para asignar 12 equipos de 16 canales... por lo que con 8 bits, alcanza (193 direcciones DMX)
-
me alegro gran jefe :-) yo estoy ahora mismo ocupado haciendome el esquema para subirlo y asi se comprendera mejor todos, por otro lado quisiera saber los cambio que tu ha hecho Norberto, buscando por Google me encontre el mismo codigo modificado, pero lastima que los comentarios estan en Holandez :x, este mismo codigo fue hecho por un Holandez donde tambien hay un tutorial aqui (http://members.chello.nl/g.assies/DMX2.pdf)
aunque no tengo muchos tiempo ire poniendo cosas por aqui.
-
Hola Rafa, creo que es el mismo codigo, pero el esquema, le faltan las resistencias limitadoras de los led... y RA4 asi como esta, no funciona, pues es open colector... habria que conectar el led opuesto a como esta... y logicamente verificar el codigo...
Norberto
-
Eso veo Norberto, aunque yo he pensado de usar MOSFET y trabajar los LED con 12 voltios el esquema casi lo tengo,
pero solo para 3 Canales y con Dipswitch, siendo asi no lo usare porque por lo que me gustaria intentar hacerlo con otro pic(16F877) o similar, aunque pensandolo bien me quiero hacer 6 circuito de eso y programarlo con diferente direciones.
a ver cuando tenga Tiempo Norberto y sube tu proyecto para verlo. ahora mismo os escribo en un Tren voy direcion a Monaco :mrgreen:
Un Saludos
-
me alegro gran jefe :-) yo estoy ahora mismo ocupado haciendome el esquema para subirlo y asi se comprendera mejor todos, por otro lado quisiera saber los cambio que tu ha hecho Norberto, buscando por Google me encontre el mismo codigo modificado, pero lastima que los comentarios estan en Holandez :x, este mismo codigo fue hecho por un Holandez donde tambien hay un tutorial aqui (http://members.chello.nl/g.assies/DMX2.pdf)
aunque no tengo muchos tiempo ire poniendo cosas por aqui.
Buenas..
Aca dejo el LInk de donde saque la info. creo que nunca lo postie.. si sirve de ayuda tengo el mismo pero con 9 Canales.. ese no lo probe pero es muy similar el Asm..
http://gathering.tweakers.net/forum/list_messages/1124899/0
Saludos---
-
Aqui os pongo mi Esquema, cualquier critica sera Bienvenida.
(http://img139.imageshack.us/img139/8666/rgbwdmx.png)
voy a probarlo con un Pic16F876 ya que necesitos mas pines
-
se te pasaron las pull del dipswitch?
-
se te pasaron las pull del dipswitch?
Gracias Jhozate por tu comentarios, pero no se si debe llevarla segun como este en Codigo? me podia dar pista?
Saludos
-
por codigo te referis a las pull up internas?..no estoy seguro del dato pero creo que solo aplica para el puertoB en los bits 4 al 7, si cambiaras la disposicion de los pines como tenes 9 entradas de todas maneras te tocaria poner 5 pull up externas
-
C
Si, me refiero por codigo, claro que tengo que hacer cambio en el codigo, como lo interpreta el Sr. Norberto,
pero ante debo definir los puerto del Dipswitch,el esquema es mas o menos como lo voy a usar aunque tenga que cambiar la posiciones de los Port.
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC & _LVP_OFF
list P=16F876
#INCLUDE <P16F876.INC>
#DEFINE OUT1 PORTB,5
#DEFINE OUT2 PORTB,6
#DEFINE OUT3 PORTB,7
#DEFINE OUT4 PORTB,4
#DEFINE RCLED PORTC,3 ;LED verde recibiendo Señal DMX
#DEFINE RX PORTC,7
#DEFINE ERRLED PORTC,4 ;Led rojo de error
#DEFINE dir_DMX ; aqui definimos donde guardamos los datos del Dipswitch
#DEFINE BREAK DMX_reg,0
#DEFINE STARTCODE DMX_reg,1
#DEFINE MOVED DMX_reg,2
#DEFINE ADDR9 DMX_reg,3
#DEFINE RC9 DMX_reg,4
DMX_reg EQU 020h
Reg1 EQU 021h
Reg2 EQU 022h
Reg3 EQU 023h
Reg4 EQU 024h
W_SAVE EQU 026h
S_SAVE EQU 027h
P_SAVE EQU 028h
pwmcounter EQU 029h
flag EQU 02Ah
D_ADDR EQU 02Bh
temp EQU 02Ch
R_ADDR EQU 02Dh
Offset EQU 02Eh
temp2 EQU 02Fh
si me falta algo agradeceria alguien que me ayude.
ya que estoy haciendo los cambio poco a poco.
Saludos
-
he moficado el primer Esquema para que se vea mas claro
http://www.todopic.com.ar/foros/index.php?topic=31287.msg269321#msg269321
-
Como comentaba arriba, estoy usando el pic16F876 y tengo algunas dudas al configurar los puertos
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC&_BODEN_ON&_LVP_OFF
list P=16F876
#INCLUDE <P16F876.INC>
ERRORLEVEL -302,-301,-215
#DEFINE LED1 PORTB,3
#DEFINE LED2 PORTB,2
#DEFINE LED3 PORTB,1
#DEFINE LED4 PORTB,0
#DEFINE RCLED PORTC,4 ;LED verde recibiendo senales
#DEFINE ERRORLED PORTC,5 ;LED rojo indicador de error
#DEFINE RX PORTC,7 ;Entrada UART RX
#DEFINE BREAK DMX_reg,0
#DEFINE STARTCODE DMX_reg,1
#DEFINE MOVED DMX_reg,2
#DEFINE ADDR9 DMX_reg,3
#DEFINE NO_DMX DMX_reg,4
DMX_reg EQU 020h
Reg1 EQU 021h
Reg2 EQU 022h
Reg3 EQU 023h
Reg4 EQU 024h
W_SAVE EQU 026h
S_SAVE EQU 027h
P_SAVE EQU 028h
contadorPWM EQU 029h
flag EQU 02Ah
D_ADDR EQU 02Bh
temp EQU 02Ch
R_ADDR EQU 02Dh
Offset EQU 02Eh
temp2 EQU 02Fh
ORG 00h
GOTO INICIO ;Inicializamos el PIC
ORG 0x05 ;Vector de interruptor
MOVWF W_SAVE ;guardamos el contextos
MOVF STATUS,W ;Guardamos el Estados de PCLATH & W
MOVWF S_SAVE
MOVF PCLATH,W
MOVWF P_SAVE
GOTO gestionar_interrupciones
INICIO ; aqui hice los cambios para el 16F876
BCF STATUS, RP0 ;
BCF STATUS, RP1 ; Bank0
CLRF PORTA ; Borramos la salida del PortA
BSF STATUS, RP0 ; Seleciono el Bank 1
MOVLW 0xFF ; Configure configuro todos los pines como entrada digital
MOVWF ADCON1
MOVLW 0xFF ; y aqui se lo cargo a W
;Aqui uso la mitad del Puerto B como salida y entrada (B7>B4 como entrada y B3>B0 como salida PWM
BCF STATUS,RP0
BCF STATUS,RP1
CRLF PORTB
BSF STATUS,RP0
MOVLW 0F ; aqui B7>B4 como entrada y B3>B0 como salida PWM
BSF TRISC,4 ;Error Trama LED Rojo
BSF TRISC,5 ;Recibiendo LED Verde
BSF TRISC,7 ;PORT C7 entrada UART PIN_18
Por muchos que busco informacion me lio y no se me ponen todos los Puertos A y la mitad de B como los configuros
con el 16F628 me sale todos bien pero necesito mas Pines para los Comuntadores (DIPSWITCH)
por favor alguien que me haga correciones
Saludos
-
hola rafa, aqui modifique un poco el codigo, para el PORTC no se como lo vas a usar pero entonces debes asegurarte de configurar el RX como entrada y el TX como salida y lo demas segun tu conveniencia, el PORTA lo puse como salida.
la hoja de datos indica que el valor a cargar en el ADCON1 para tener el PORTA como I/O digitales es 0x06, pero eso solo indica que serán digitales, luego entonces debes configurar el TRISA indicarle cuales serán entradas y salidas
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC&_BODEN_ON&_LVP_OFF
list P=16F876
#INCLUDE <P16F876.INC>
ERRORLEVEL -302,-301,-215
#DEFINE LED1 PORTB,3
#DEFINE LED2 PORTB,2
#DEFINE LED3 PORTB,1
#DEFINE LED4 PORTB,0
#DEFINE RCLED PORTC,4 ;LED verde recibiendo senales
#DEFINE ERRORLED PORTC,5 ;LED rojo indicador de error
#DEFINE RX PORTC,7 ;Entrada UART RX
#DEFINE BREAK DMX_reg,0
#DEFINE STARTCODE DMX_reg,1
#DEFINE MOVED DMX_reg,2
#DEFINE ADDR9 DMX_reg,3
#DEFINE NO_DMX DMX_reg,4
DMX_reg EQU 020h
Reg1 EQU 021h
Reg2 EQU 022h
Reg3 EQU 023h
Reg4 EQU 024h
W_SAVE EQU 026h
S_SAVE EQU 027h
P_SAVE EQU 028h
contadorPWM EQU 029h
flag EQU 02Ah
D_ADDR EQU 02Bh
temp EQU 02Ch
R_ADDR EQU 02Dh
Offset EQU 02Eh
temp2 EQU 02Fh
ORG 00h
GOTO INICIO ;Inicializamos el PIC
ORG 0x05 ;Vector de interruptor
MOVWF W_SAVE ;guardamos el contextos
MOVF STATUS,W ;Guardamos el Estados de PCLATH & W
MOVWF S_SAVE
MOVF PCLATH,W
MOVWF P_SAVE
GOTO gestionar_interrupciones
INICIO BCF STATUS, RP0
BCF STATUS, RP1
CLRF PORTA ;BORRO SALIDAS DEL PORTA
CLRF PORTB ;BORRO SALIDAS DEL PORTB
BSF STATUS, RP0 ;BANCO 1
MOVLW 0X06
MOVWF ADCON1 ; PORTA COMO I/O DIGITALES
MOVLW 0XF0 ;<B4:B7 ENTRADA B3:B0 SALIDA>
MOVWF TRISB ;
MOVLW 0X00
MOVWF TRISA ;PORTA TODO COMO SALIDA
.
.
. AQUI ADENTRO LA CONFIGURACION DE ENTRADA Y SALIDAD DE LOS PUERTO
BCF STATUS, RP0 ;BANCO 0
AQUI TU CODIGO
-
Muchas gracias Jhozate por tu gran ayudas :-/ :-/
aunque yo ya lo tenia asi, he hecho muchos cambio en el PORT A para que me funciones todos como entrada y algunas veces se me activaban intercalados, osea RA0 ,RA2,RA3 y los demas se me quedaban como entrada, probando consegui que se me pusieran como entrada todos menos el RA5 que por muchos que cambio me sale como salida :x
pues bien viendo tu cambio
Aqui BSF STATUS, RP0 ;BANCO 1
MOVLW 0X06
MOVWF ADCON1 ; PORTA COMO I/O DIGITALES
MOVLW 0XF0 ;<B4:B7 ENTRADA B3:B0 SALIDA>
MOVWF TRISB ;
MOVLW 0XFF ; es la parte donde quiero ponerlo todos como entrada
MOVWF TRISA ;PORTA TODO COMO entrada
Voy a probarlo y te cuento,
Muchas gracias Jhozate
Un Saludos
-
si es como salida entonces debes cargarle 0x00 si o si, acuerdate de estar en el banco correcto siempre ;-)
-
si es como salida entonces debes cargarle 0x00 si o si, acuerdate de estar en el banco correcto siempre ;-)
Perdon Jhozate que me equivoque al escribir, con la prisa puse salida y deben ser entrada, los de poner el Banco tranquilo que lo consigo.
una vez mas muchas gracias
Saludos
-
Hola Amigos!, Rafa, en el ultimo esquema, hay un error en el sn75176, y colocaste el pin Data a masa, cuando tendrias que colocar el Data Enabled a masa (el pin de control), en el primer esquma si está bien...
Por aqui con mucho trabajo, pero ya he comprado los led de 10mm para hacer las pruebas "reales" :mrgreen:
Saludos!
PD: Rafa, en el programa de mi receptor, verifico si el dato es mayor o menos a 127 , para pasar de off a on, es decir, activo al 100% o 0%, para disparar la maquina de humo... :mrgreen:
Norberto
-
Hola Amigos!, Rafa, en el ultimo esquema, hay un error en el sn75176, y colocaste el pin Data a masa, cuando tendrias que colocar el Data Enabled a masa (el pin de control), en el primer esquma si está bien...
Por aqui con mucho trabajo, pero ya he comprado los led de 10mm para hacer las pruebas "reales" :mrgreen:
Saludos!
PD: Rafa, en el programa de mi receptor, verifico si el dato es mayor o menos a 127 , para pasar de off a on, es decir, activo al 100% o 0%, para disparar la maquina de humo... :mrgreen:
Norberto
un abrazo
si ya lo vi el error, en el Receptor de maquina de humo, se su funcion, <50% es OFF y mas de 50> en ON, pero lo que quiero es adaptar la parte de los DIPSWITCH que va en tu programa. :P
estoy ahora mismo con ellos, pero tardare muchos tiempo ya que no tengo Tiempo. :5] el trabajo y los viajes :5]
-
Hola, gente buen dia, quisiera saber si pudieron hacer funcionar el 4º canal para realizar un flash o strobo? lamentablemente no se programar en asm, y mis conocimientos en picbasic son basicos recien estoy arrancando, si alguien me podria decir el algoritmo principal para empezar a interpretar las tramas dmx o si me ayudan para lograr con el 4º canal el flash les agradeceria, saludos
-
hola a todos!!!!...yo estoy trabajando en el mismo asunto... les agradezco toda la info que me han brindado...por eso me gustaria compartir con uds. una distribucion de un par 56 que hice..es en forma de porciones de pizza pero esta distribucion no se nota a partir de los 50cm de distancia...lo unico q deben hacer..es cambiarle las firmas..subo, ademas del pcb echo en eagle, las fotos de la placa, de los leds de 10mm soldados, modelos echo en autocad 3D y una foto que me da los creditos..je...suerte.. ;-)
PD: dejo un link por dificultades al subir los archivos aca...
Par56-leds-10mm en 4shared.com (http://www.4shared.com/file/kVis76gO/par56-leds-10mm.html)
-
ah...me olvide de comentar q se alimenta con 12V...
-
el cuarto canal DMX osea el de strobo se podría conseguir utilizando un cuarto canal dimmer, por medio de un integrador lograr que entregue una tensión acorde al PWM que entrega el dimmer... luego conectar un mosfet que varié la corriente de carga de un capacitor de un OSC RC... (se podria utilizar hasta un simple 555) ... y hacer que conmute en su salida la alimentación de la parte de potencia del resto de los canales DMX (dimmers) nose si funcionará o si me explique bien...
-
hola amigos, esta es mi 1| vez en el foro, yo tambien soy nuevo en esto y la verdad es que estoy muy interesado en encontrar un programita o proyecto para realizar un tacho led DMX ya que los reparo y en varios el problema es justamente el integrado pero normalmente vienen bloqueados y nunca los pude copiar....
la verdad es que los felicito si lograron realizar eso y espero que me puedan dar una mano... si alguien tiene el proyecto y no es mucha molestia compartirmelo, les dejo mi mail..... decibelelectronica@gmail.com
muchas gracias!
-
hola amigos, esta es mi 1| vez en el foro, yo tambien soy nuevo en esto y la verdad es que estoy muy interesado en encontrar un programita o proyecto para realizar un tacho led DMX ya que los reparo y en varios el problema es justamente el integrado pero normalmente vienen bloqueados y nunca los pude copiar....
la verdad es que los felicito si lograron realizar eso y espero que me puedan dar una mano... si alguien tiene el proyecto y no es mucha molestia compartirmelo, les dejo mi mail..... decibelelectronica@gmail.com
muchas gracias!
Hola! llevo rato ya siguiendo el curso de este proyecto, y me parece egoista de tu parte que en una comunidad en la que estan aportando todos su granito y subiendo a todos los avances que se van logrando, pidas el proyecto a tu mail, mira si lo van a publicar, a ver si otro se lo baja!! fff1 saludos...
-
Saludos desde Rosario,soy Carlos. El pic a utilizar es el 16f628.
Mi consulta es la siguiente, para direccionar 512 canales necesito un DIP de 9 pines (elimines dos pines de leds de indicacion) , el tema es que un registro tiene 8, queria saber como se puede hacer por que con 8 bits solo se puede 255 canales obviamente. Se podra guardar en 2 posiciciones de memoria o osar el Carry, pero se complicaca. -
Por otro lado hay una cuestion en una parte del codigo. La siguiente:
MOVF R_ADDR,W ;else: check if chans match
XORWF D_ADDR,W
BTFSC STATUS,Z
GOTO NINTH ;if so: check for 9th bit
CALL INCREASE
GOTO RET ;if not: just return from interrupt
NINTH
BTFSC ADDR9
GOTO TRUE
MOVF RCREG,W
GOTO FALSE
TRUE ;our 9th bit is set
BTFSC RC9
GOTO CHAN
CALL INCREASE
GOTO RET
FALSE
BTFSS RC9
GOTO CHAN
CALL INCREASE
GOTO RET
PREGUNTA. Que son esos bits o registros respectivamente : ADDR9 - RC9 / R_ADDR - D_ADDR
y alguna explicacion mas o menos de este bloque ya que lo demas esta encaminado.
-
Hola amigos, alguno puedo hacer andar el stobo y el dipswitch? si alguno puede sube como queda el esquema final con el codigo para el pic? gracias, saludos
-
Hola a todos me gustaría saber en que quedo el proyecto?
-
hola, estoy desarrollando un receptor dmx para encendido de led rgb, me funciona muy bien, pero quiero y no se como el agregar un canal dimer, osea que el cuarto canal dimerice los otros tres, no importa el nivel de cada uno, osea si yo regulo los tres colores para formar un color, que ese canal lo dimerice, apagandolo o encendiendolo sin necesidad de tocar los otros tres canales, uso el pic 16f628, quiero luego ampliarlo a un 883 y un 887, pero por pasos primero el 628, les agradeceria su ayuda de como hacer el soft