Autor Tema: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso  (Leído 105949 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #15 en: 22 de Mayo de 2008, 01:47:34 »
 :-/ :-/ te quedo chulisimo el video y tu projecto   :-/ :-/
voy a intentar hacerlo con un 16F870 a ver que, y a ver si me puede dar la fuente original  :mrgreen:
Saludote Norber 

Desconectado lagruya

  • PIC16
  • ***
  • Mensajes: 204
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #16 en: 22 de Mayo de 2008, 13:12:33 »
Muy bueno!
felicitaciones  :-/ :-/ :-/

Desconectado josmaroal

  • PIC10
  • *
  • Mensajes: 22
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #17 en: 13 de Junio de 2008, 18:04:02 »
Soy nuevo en este foro, asi como tambien en programacion de pic, recien estoy aprendiendo Mikrobasic.
Como uno de los importantes proyecto que quiero implantar, aprovechando la genialidad del amigo Nolberto con su preoyecto PAP por DMX.
Les doy un saludo a todos y espero contar con su ayuda y paciencia (por alguna pregunta sosa jejej).
Gracias a los creadores de este foro por su gran aporte y apoyo a los que no se rinden para seguir aprendiendo.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #18 en: 13 de Junio de 2008, 23:15:42 »
Hola, Josmaoral me solicito el .hex de este proyecto...

asi que, aqui está!  :mrgreen:

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado josmaroal

  • PIC10
  • *
  • Mensajes: 22
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #19 en: 14 de Junio de 2008, 05:17:05 »
Gracias amigo Norberto.... ahora si manos a la obra.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #20 en: 14 de Junio de 2008, 05:21:17 »
Hola Josmaroal aqui estamos para ayudar en lo que se pueda  :mrgreen: ya no comentaras de tu projetos
un Saludo

Desconectado josmaroal

  • PIC10
  • *
  • Mensajes: 22
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #21 en: 17 de Junio de 2008, 18:11:10 »
Amigo Norberto, realice el ruteado del diagrama(con corel Draw) usando el modelo del PBC que entregas en tu proyecto pero al cotejarlo con tu esquema hay pequeñas diferencias: en diagrama >>16F628 pin9  a  ULN2003 pin7 .......16F628 pin6  a  ULN2003 pin1 ,
en PBC >>16F628 pin9  a  ULN2003 pin1 .......16F628 pin6  a  ULN2003 pin7, trate  de entender en el programa cual eran los puertos, pero no estoy preparado para eso todavia, por tal motivo te pido me ayudes indicandome cual es lo correcto.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #22 en: 17 de Junio de 2008, 22:13:45 »
ok Jos, y no te olvides de postear tu proyecto terminado y compartirlo co todos nosotros  :mrgreen:

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado josmaroal

  • PIC10
  • *
  • Mensajes: 22
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #23 en: 20 de Junio de 2008, 05:14:21 »
Amigo Norberto, son las 3am aqui en mi paiz y acabo de terminar el armado y probar tu proyecto fue sensacional verlo funcionar.
Tengo algunas preguntas al respecto:
Solo funciona un motor el otro no responde(revise el circuito), es del Programa supongo o no es el canal-DMX 2 ?.
El motor que funciona no responde con la velocidad que se ve en tu video, sigue girando hasta que alcanza la psicion ordenada,. puede ser el tablero o la señal DMX ?.
Bueno seguire probando y tratando de entender el software aunque la verdad eso es chino para mi.
Gracias por tu gran proyecto creo que estoy entrando por la puerta grande a estos nuevos sistemas.

Desconectado josmaroal

  • PIC10
  • *
  • Mensajes: 22
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #24 en: 25 de Junio de 2008, 18:18:59 »
Hola Norberto y stk500, ahi pongo unas fotos del proyecto PAPxDMX, armado y funcionando, (con algunos incovenientes) pronto pondre un video de como camina aunque prefiero seguir intentado averiguar unos dias mas algunos errores que debo haber cometido.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #25 en: 27 de Junio de 2008, 00:10:08 »
Hola Jos!, me alegro que lo pudiste armar!!!  :-/ , el programita, esta escrito para el canal 1 y 2
tengo que mejorarlo, con algun micro mas grande para setearlo mediante dipswich o algu otro metodo....
yo envio la señal desde la consolita, que ademas, me muestra la "data" o numero que esta enviando
El motor se posiciona al valor que le envias, y se detiene al llegar en esa posicion,
En el arranque, trata de llegar a la "posicion cero" hasta que acciona algun interuptor "fin de carrera" , eso seria para emplear en iluminacion robotizada que mueve los espejos...  :-)
No se que motores estas empleando..., o con que voltaje lo estas alimentando....

Hoy, de casualidad, le encontre una falla que tengo que corregir, y es que si no le llega señal DMX, quedan girando, en busca del cero...  :mrgreen:, ni bien lo tenga, lo posteo nuevamente...  pero te tiene que funcionar ok?

Mantenenos informado ok?

Suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado PACMER

  • PIC10
  • *
  • Mensajes: 18
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #26 en: 18 de Enero de 2009, 05:50:33 »
SIEMPRE tarde en mis comentarios :(, apenas hace como un mes que comence en el foro :-)
solo queria preguntarte de cuantos pasos son tus motores?

y otra los motores de de los floppy de que tipo son?

espero tu respuesta, por cierto tu trabajo esta exclente :-/.

GRACIW

Desconectado exflaco

  • PIC10
  • *
  • Mensajes: 3
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #27 en: 27 de Junio de 2009, 06:25:12 »
Exelente trabajo Norberto Primero,buenisimo el trabajo en asm se puede interpretar y entendor todo el protocolo deja el C para mas adelante,lo primero,es lo primero y funciona jeje te doy  :-/ :-/ :-/ :-/ :-/ :-/ y mas :-/ :-/ :-/   :D el que se anime que le ponga los cascabeles al gato,digo los espejos a los  los pap

Desconectado sistemas

  • PIC10
  • *
  • Mensajes: 3
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #28 en: 01 de Septiembre de 2010, 15:47:42 »
HOla:
primero que nada tengo que felicitarte por tu trabajo, esta exelente. pero me podrias explicar para que son las entradas o salidas que estan a un lado del led. y otra cosa que espero disculpes mi ignorancia pero cres que sea muy complicado añadirle a tu proyecto el dip-switch ke indique el numero de dispositivo en la DMX. asi como ponerle su salida DMX. Me explico. a un lado del push-button hay tres entradas que son las que van a la consola DMX y lo que pregunto es que si se pueden poner otas tres que sean las de salida para asi conectar otro dispositivo. Y por ultimo es posible hacer que se conecten mas motores que solo dos.
de antemano muchas gracias tu proyecto esta exelente




Hola Amigos!, les presento este proyecto, que ya está en funcionamiento  :-/ :mrgreen:

Continuando con el codigo receptor DMX, luego de verificar el funcionamiento para un motor (empleando 4 leds) agregué para comandar en forma individual, un par de motores, empleo para exitarlos, 2 ULM2003




Código: ASM
  1. ;*****************************************************************        
  2. ;receptor dmx - decodifica 3 canales - dos motores pap y velocidad
  3. ; Norberto Pellegrini - Todopic Electronica
  4. ;*****************************************************************
  5. ;24/12/06 12:09a.m. HAY QUE EMPLEAR EL MICRO A 20 MHZ
  6. ; verificacion de tiempos y compensacion con NOP de las tramas
  7. ;*****************************************************************
  8.  
  9.     list p=16f628
  10.         #include p16f628.inc
  11.  
  12.         ERRORLEVEL      -302, -307      ;(NO FIGURAN LOS ERRORES DE CAMBIO DE PAGINA)
  13.  
  14.        
  15.         CBLOCK  H'20'   ;32 decimal     H'0C'
  16. ;ASIGNACION DE REGISTRO DE USO GENERAL
  17.         CONTA_T ;TIEMPO DEL BREAK, DE 88 uS
  18.         CONTABIT        ;8 BIT DE DATOS
  19.         CHANEL          ;CONTADOR DE CANALES LEIDOS POR EL RECEPTOR
  20.         DIPSWICH        ;seteos de direccion
  21.         DIPSWICH_MAS1   ;DIRECCION MAS UNO O SIGUIENTE
  22.         DIPSWICH_MAS2   ;DIRECCION MAS DOS
  23.         DATOS                   ;BYTE DE RECEPCION RS485 DE DMX
  24.         POSICION
  25.         PASOS_PAN
  26.         PASOS_TILT
  27.         CONTA_PASOS_PAN
  28.         CONTA_PASOS_TILT
  29.         CONTA_PAN       ;CONTADOR DE TABLA DE PASOS DEL MOTOR
  30.         CONTA_TILT      ;CONTADOR DE LA TABLA DEL SEGUNDO MOTOR
  31.         DESTELLO
  32.         DESTELLO1       ;SON LOS CONTADORES PARA PRODUCIR EL
  33.         DESTELLO2       ;DESTELLO DEL LED INDICADOR DE FALTA DE SEÑAL DMX
  34.         VELOCIDAD
  35.         COMPENSAR               ;TIEMPO A COMPENSAR EN LOS DELAY PARA REDUCIR LA VELOCIDAD AL ESTAR MAS CERCA DE LA POSICION
  36.         RESTO
  37.         RETARDO
  38.         PUERTO  ;       BYTE AUXILIAR PARA FORMAR EL AND DE LAS SALIDAS AL PUERTO B
  39.         LOOP1
  40.         LOOP2
  41.         LOOP3
  42.         ENDC
  43.        
  44.  
  45. #DEFINE DMX     PORTA,3 ; en el prototipo era 4
  46. #DEFINE FC_PAN  PORTA,1
  47. #DEFINE FC_TILT PORTA,2
  48. #DEFINE LED     PORTA,0
  49.  
  50.  
  51.         __CONFIG   _HS_OSC &  _WDT_ON & _PWRTE_ON & _CP_OFF & _BODEN_ON & _LVP_OFF & _MCLRE_OFF
  52. ;               osc 20 mhz
  53.  
  54. ;**********************************************************************
  55. RESET   org     00h     ;el vector de reset es la dirección 00
  56.  
  57.  
  58.                 goto    INICIO  ;se salta al inicio del programa
  59.  
  60. ;**********************************************************************
  61.         org     05h
  62.  
  63. ;*************** SUBRUTINA DE RETARDO DE 2 Us   **************         
  64. ;-------------------------------------------------------------
  65. DEMORA2US ; ES EN REALIDAD DE 1.8 uS PARA COMPENZAR
  66.         NOP     ;1 uS
  67.         NOP
  68.         CLRWDT
  69.         NOP
  70.         NOP     ;1 uS
  71.         RETURN
  72. ;**********************************************************************************
  73. ;##################################################################################
  74. ;**********************************************************************************
  75. ;TABLA DE POSICIONAMIENTO DE LOS MEDIO PASOS DEL MOTOR PAP DE PANORAMICO
  76. TABLA_PAN       ADDWF   PCL,F
  77.                 GOTO    CORREGIR1
  78.                 RETLW   B'11110001'     ;LOS 4 BIT DE MAYOR PESO ESTAN EN UNO PARA HACER BUNA AND ENTRE TABLAS
  79.                 RETLW   B'11110011'
  80.                 RETLW   B'11110010'
  81.                 RETLW   B'11110110'
  82.                 RETLW   B'11110100'
  83.                 RETLW   B'11111100'
  84.                 RETLW   B'11111000'
  85. ULTIMO  RETLW   B'11111001'
  86.                 MOVLW   .1                      ;LIMITE MAXIMO DE LA TABLA
  87.                 MOVWF   CONTA_PAN
  88.                 GOTO    TABLA_PAN+2
  89. ;---------------------------------------------------------------------------------------------
  90. CORREGIR1                       ;SI ERA CERO, LO PASO AL VALOR 8 DE LA TABLA (LIMITE MINIMO DE LA TABLA)
  91.                 MOVLW   .8
  92.                 MOVWF   CONTA_PAN
  93.                 GOTO    ULTIMO
  94. ;************************************************************************************************
  95. ;################################################################################################
  96. ;************************************************************************************************
  97. ;TABLA DE POSICIONAMIENTO DE LOS MEDIO PASOS DEL MOTOR PAP DE TILT
  98. TABLA_TILT      ADDWF   PCL,F
  99.                 GOTO    CORREGIR2
  100.                 RETLW   B'00011111'     ;LOS 4 BIT DE MENOR PESO SON 1 PARA HACER UNA AND ENTRE LAS TABLAS
  101.                 RETLW   B'00111111'
  102.                 RETLW   B'00101111'
  103.                 RETLW   B'01101111'
  104.                 RETLW   B'01001111'
  105.                 RETLW   B'11001111'
  106.                 RETLW   B'10001111'
  107. ULTIMO2 RETLW   B'10011111'
  108.                 MOVLW   .1                      ;LIMITE MAXIMO DE LA TABLA
  109.                 MOVWF   CONTA_TILT
  110.                 GOTO    TABLA_TILT+2
  111. ;---------------------------------------------------------------------------------------------
  112. CORREGIR2                       ;SI ERA CERO, LO PASO AL VALOR 8 DE LA TABLA (LIMITE MINIMO DE LA TABLA)
  113.                 MOVLW   .8
  114.                 MOVWF   CONTA_TILT
  115.                 GOTO    ULTIMO2
  116.                
  117. ;************************************************************************************************
  118. ;############################  PROGRAMA  PRINCIPAL ##############################################
  119. ;************************************************************************************************
  120.  
  121. INICIO
  122.        
  123.         MOVLW 0x07
  124.         MOVWF CMCON     ;PARA EL 16F628, ELIMINO LOS COMPARADORES, TODAS SALIDAS DIGITALES
  125.  
  126.         BSF             STATUS,RP0      ;BANCO 1
  127.         MOVLW   B'00000000'     ; 8 TODAS SALIDAS PARA CONTROLAR 2 MOTORES PAP
  128.         MOVWF   TRISB
  129.         MOVLW   B'11111110'     ;1 SALIDAS
  130.         MOVWF   TRISA
  131.         BCF             STATUS,RP0      ;BANCO 0
  132.         CLRF    TMR0
  133.  
  134. ;       MOVLW   B'11111111'
  135.         CLRF    PORTB           ;coloco en cero las salidas
  136.         CLRF    PORTA
  137.         CLRF    DATOS
  138.         CLRF    CHANEL
  139.         BCF             LED
  140.         MOVLW   .1
  141.         MOVWF   CONTA_PASOS_PAN
  142.         MOVWF   CONTA_PASOS_TILT
  143.         MOVWF   CONTA_PAN
  144.         MOVWF   CONTA_TILT
  145.         MOVWF   PASOS_PAN
  146.         MOVWF   PASOS_TILT
  147.         CALL    DEMORA
  148.         CLRF    PUERTO
  149.         CLRF    PORTB
  150.         CLRWDT
  151.         PAGESEL POSICION_CERO
  152.         LCALL   POSICION_CERO   ;BUSQUEDA DE LOS CEROS DE CADA EJE
  153.        
  154. ;*************************************************************************************************
  155. ;#####################  PULSO DE ARRANQUE O SINCRONISMO BREAK ####################################             
  156. ;**************************************************************************************************
  157. ;ESPERA LA LLEGADA DEL PULSO BREAK, QUE TIENE QUE SER DE AL MENOS 88 uS A 1 SEGUNDO, SINO ES ERROR
  158. ;ESTE PULSO BAJO DE 88 uS INDICA EL COMIENZO DE LA TRAMA DMX, QUE ES CICLICA
  159. BREAK
  160.         CLRWDT
  161. ;------------------------------------------------------------------------------------  
  162.         MOVLW 0x07
  163.         MOVWF CMCON     ;PARA EL 16F628, ELIMINO LOS COMPARADORES, TODAS SALIDAS DIGITALES
  164.  
  165.         BSF             STATUS,RP0      ;BANCO 1
  166.         MOVLW   B'00000000'     ; 8 entradas PARA ASIGNAR UNA DE LAS 255 DIRECCIONES POSIBLES
  167.         MOVWF   TRISB
  168.         MOVLW   B'11111110'     ;1 SALIDAS
  169.         MOVWF   TRISA
  170.         BCF             STATUS,RP0      ;BANCO 0
  171.         PAGESEL DEMORA2US
  172. ;------------------------------------------------------------------------------
  173.         ;LEER EL CANAL DMX SETEADO EN LOS DIP SWICH
  174.         MOVLW   .1      ;PORTB,W
  175.         MOVWF   DIPSWICH        ;DIRECCION DMX QUE SE ASIGNA EMPLEANDO 8 DIP SWICH (EN BINARIO)
  176.         INCF    DIPSWICH,W     
  177.         MOVWF   DIPSWICH_MAS1   ;ES UN VALOR MAS DE LA DIRECCION ASIGNADA
  178.         INCF    DIPSWICH_MAS1,W
  179.         MOVWF   DIPSWICH_MAS2   ;ES DOS VALORES MAS DE LA DIRECCION ASIGNADA
  180.  
  181.         MOVLW   .80
  182.         MOVWF   CONTA_T
  183.         MOVLW   .255    ;PARA QUE EMPIECE A CONTAR DESDE EL CANAL CERO
  184.         MOVWF   CHANEL
  185.  
  186. ;---------------------------------------------------------------------------
  187. CONTINUAR
  188.         DECFSZ  DESTELLO2,F     ;RETARDOS EN LOS DESTELLOS A LA ESPERA DE SEÑAL DMX
  189.         GOTO    ES_CERO
  190.         DECFSZ  DESTELLO1,F    
  191.         GOTO    ES_CERO
  192.         INCF    DESTELLO,F
  193.         BCF             LED                                     ;MIENTRAS ESTA EN CERO APAGO EL LED INDICADOR DE SE¥AL DMX
  194.         BTFSC   DESTELLO,2 ; Y QUEDARA DESTELLANDO LENTO
  195.         BSF             LED
  196.  
  197. ES_CERO
  198.         BTFSC   DMX                                     ;ES LA ENTRADA DMX CERO?, SI SALTAR
  199.         GOTO    BREAK
  200.         DECFSZ  CONTA_T,F       ;SI LLEGA A CERO, ES PORQUE EL BREAK DURO POR LO MENOS 88 uS (80)
  201.         GOTO    ES_CERO
  202.         BTFSS   DMX                                     ;ESPERO A QUE TERMINE EL PULSO DE BREAK, POR SI ES MAYOR A 88 US
  203.         GOTO    $-1                                     ;Y DETERMINO EL COMIENZO DEL PULSO "MARK" QUE ES ALTO (UNO) DE 8 uS
  204.        
  205. MARK    ;                                                       DURACION DE 8 uS EN ALTO
  206.         CALL DEMORA2US                  ;2 uS, VERIFICO A LA MITAD DEL PULSO
  207.  
  208.         BTFSS   DMX                                     ; MITAD DEL PRIMER PULSO, LEO SI ESTA EN UNO
  209.         GOTO    BREAK                           ;HAY ERROR
  210.        
  211.         CALL DEMORA2US          ;FINAL DEL PRIMER PULSO
  212.         CALL DEMORA2US          ;PRIMER MITAD DEL 2DO PULSO
  213.  
  214.         BTFSS   DMX                                     ; MITAD DEL SEGUNDO PULSO
  215.         GOTO    BREAK                           ;HAY ERROR
  216.  
  217. PROX    ;<---------SINCRONIZACION DEL PULSO DE START #########################################################
  218.         INCF    CHANEL,F
  219.                                                                         ;SI EL NUMERO DE CANAL ES XX SETEADO CON LOS DIPSWICH
  220.                                                                         ; VER EL VALOR DE DATA, Y ACTUAR
  221.  
  222.         BTFSC   DMX             ;ME QUEDO ESPERANDO LOS 2uS FINALES DE MARK
  223.         GOTO    $-1             ;HASTA QUE APAREZCA EL PULSO BAJO DE START
  224.                                                         ;AL DETECTAR EL BAJO DE STAR, ME
  225.         ;CALL           DEMORA2US       ;DESPLAZO A LA MITAD DEL PRIMER BIT
  226.         NOP
  227.         CLRWDT
  228.         NOP
  229.         MOVLW   .8
  230.         MOVWF   CONTABIT        ;CADA BIT DURA 4 uS
  231.  
  232. START           ;CAIGO EN LA MITAD DEL PULSO START, QUE TIENE QUE SER BAJO
  233.         BSF             LED
  234.         CLRF    DATOS
  235.         BTFSC   DMX     ;SI ES BAJO, ESTA CORRECTO, SI ES UNO, ES ERROR, ASI QUE ESPERO LA PROXIMA SECUENCIA
  236.         GOTO    BREAK  
  237.         NOP
  238.         CLRWDT
  239.         NOP
  240. OTRO
  241.         CALL    DEMORA2US
  242. ;       CALL    DEMORA2US ; MITAD DEL BIT 0
  243.         NOP
  244.         NOP
  245.         CLRWDT
  246.         NOP
  247.         RRF             DATOS,F
  248.         BCF             DATOS,7
  249.         BTFSC   DMX
  250.         BSF             DATOS,7
  251.         DECFSZ  CONTABIT,F
  252.         GOTO    OTRO
  253. ;       CALL    DEMORA2US
  254.        
  255.  
  256.         CLRWDT
  257.  
  258. ;STOP   ;DOS BIT DE STOP EN ALTO, SOLO DETECTO EL PRIMERO Y PROCESO LA INFO
  259. ;       BTFSS   DMX             ;MIRO EN LA MITAD DEL PRIMER BIT DE STOP EN ALTO (A LOS 38 uS)
  260. ;       GOTO    BREAK   ;HAY ERROR
  261.  
  262.  
  263. ;-----------------PRIMER CANAL - DATOS DEL CANAL MOTOR PAP PAN
  264. CANAL1 
  265.         MOVF    CHANEL,W               
  266.         XORWF   DIPSWICH,W             
  267.         BTFSS   STATUS,Z       
  268.         GOTO    SIGUIENTE      
  269.                                                         ;TOMO EL DATO DMX PARA EL CONTROL DE PAN
  270.         ;NOP
  271.         ;NOP
  272.         ;NOP
  273.         MOVF    DATOS,W ;cambio de variable, de dato lo paso a PASOS
  274.         MOVWF   PASOS_PAN           ;PORTB     
  275.         GOTO    PROX   
  276.  
  277. ;-----------------SEGUNDO CANAL -------  DATOS DEL CONTROL DE TILT
  278. SIGUIENTE
  279.         MOVF    CHANEL,W                ;VERIFICO EN PRIMER LUGAR,
  280.         XORWF   DIPSWICH_MAS1,W ;SI LA CUENTA LLEGO A 26 (MAQUINA DE HUMO
  281.         BTFSS   STATUS,Z                ;SI ES IGUAL, SALTA, SINO VA AL PROXIMO
  282.         GOTO    SIGUIENTE3     
  283.  
  284.         ;NOP   
  285.         ;NOP   
  286.         ;NOP   
  287.         MOVF    DATOS,W
  288.         MOVWF   PASOS_TILT
  289.         GOTO    PROX
  290. ;-----------------TERCER CANAL
  291. SIGUIENTE3     
  292.         MOVF    CHANEL,W                ;VERIFICO EN PRIMER LUGAR,
  293.         XORWF   DIPSWICH_MAS2,W ;SI LA CUENTA LLEGO A 26 (MAQUINA DE HUMO
  294.         BTFSS   STATUS,Z                ;SI ES IGUAL, SALTA, SINO VA AL PROXIMO
  295.         GOTO    PROX    ;NO ES NINGUNO DE LOS 3 VALORES, SIGO ESPERANDO AL CANAL CORRESPONDIENTE
  296.  
  297.         MOVF    DATOS,W
  298.         MOVWF   VELOCIDAD       ;RETARDOS EN LOS AVANCES DE LOS MOTORES DE PAN Y TILT
  299.         GOTO    COMPARAR
  300.  
  301.  
  302. ;****************************************************************************************************
  303. ;********    posicionamiento de LOS MOTORES**********************************************************
  304. ;****************************************************************************************************
  305. ;>>>>>>>>>>>  MOTOR DE PAN  <<<<<<<<<<<<<<<<<<<<
  306.  
  307. COMPARAR        ;VERIFICA SI LLEGO AL LUGAR PARA DETENERSE, O TIENE QUE GIRAR  A DERECHA O IZQUIERDA
  308. ;       Comparar
  309.         CLRF    STATUS
  310.         MOVF    PASOS_PAN,W             ;VALOR LEIDO EN DATOS POR DMX
  311.         XORWF   CONTA_PASOS_PAN,W       ;y lo compara con la CONTA_PASOS_PAN QUE ES EL VALOR DE POSICION ACTUAL
  312.         BTFSS STATUS,Z                  ;¨ Son iguales ?
  313.         GOTO NOT_EQ1    ;PASOS ES DISTINTO A CUENTA_PASOS, TIENE QUE CALCULAR PARA DONDE GIRAR
  314.         GOTO EQ1                ;PASOS ES IGUAL A CUENTA_PASOS, TIENE QUE DETENER MOTOR
  315.  
  316. EQ1     ;NO SE REALIZA NINGUNA VARIACION EN LOS DELAY PATRONES
  317. ;       CLRF    COMPENSAR       ;NO HAY VARIACION DE TIEMPOS, Y DETENER EL MOTOR
  318.         GOTO    COMPARAR2       ;BREAK  ;IR A DETECTAR EL COMIENZO DE LA PROXIMA TRAMA DMX
  319.        
  320. NOT_EQ1
  321.         MOVF PASOS_PAN, W
  322.         SUBWF CONTA_PASOS_PAN,W  ;F-W   GUARDO RESULTADO EN W  
  323.         BTFSS STATUS, C
  324.         GOTO GIRO_DERECHA1
  325.         GOTO GIRO_IZQUIERDA1    
  326.  
  327. GIRO_DERECHA1
  328.         INCF    CONTA_PASOS_PAN,F
  329.         INCF    CONTA_PAN,F     ;CONTADOR DE TABLA DE SECUENCIA PARA EL PAP
  330.         MOVLW   .255    ;ESTE ERA EL VALOR DEL TEMPORIZADOR
  331.         MOVWF   COMPENSAR
  332.         MOVF    CONTA_PASOS_PAN,W
  333.         SUBWF   PASOS_PAN,W
  334.         MOVWF   COMPENSAR       ; PROPORCIONAL AL RETARDO, MAS LEJOS, MENOS TIEMPO
  335.  
  336.         GOTO    COMPARAR2       ;NDP
  337.        
  338. GIRO_IZQUIERDA1
  339.         DECF    CONTA_PASOS_PAN,F
  340.         DECF    CONTA_PAN,F     ;CONTADOR DE TABLA DE SECUENCIA PARA EL PAP
  341.         MOVLW   .255    ;ESTE ERA EL VALOR DEL TEMPORIZADOR
  342.         MOVWF   RESTO
  343.         MOVF    PASOS_PAN,W
  344.         SUBWF   CONTA_PASOS_PAN,W
  345.         SUBWF   RESTO,W
  346.         MOVWF   COMPENSAR       ;VALOR  PROPORCIONAL AL RETARDO, MAS CERCA, MAS  TIEMPO
  347.         GOTO    COMPARAR2       ;NDP
  348.        
  349.        
  350. ;***********************************************************************************************
  351. ;################  POSICIONAMIENTO DEL MOTOR DE TILT  ##########################################
  352. ;***********************************************************************************************
  353. COMPARAR2       ;VERIFICA SI LLEGO AL LUGAR PARA DETENERSE, O TIENE QUE GIRAR  A DERECHA O IZQUIERDA
  354. ;       Comparar
  355.         CLRF    STATUS
  356.         MOVF    PASOS_TILT,W            ;
  357.         XORWF   CONTA_PASOS_TILT,W      ;y lo compara con la CONTA_PASOS QUE ES EL VALOR DE POSICION ACTUAL
  358.         BTFSS STATUS,Z                  ;¨ Son iguales ?
  359.         GOTO NOT_EQ2    ;PASOS ES DISTINTO A CUENTA_PASOS, TIENE QUE CALCULAR PARA DONDE GIRAR
  360.         GOTO EQ2                ;PASOS ES IGUAL A CUENTA_PASOS, TIENE QUE DETENER MOTOR
  361.  
  362. EQ2     ;NO SE REALIZA NINGUNA VARIACION EN LOS DELAY PATRONES
  363. ;       CLRF    COMPENSAR       ;NO HAY VARIACION DE TIEMPOS, Y DETENER EL MOTOR
  364. ;       GOTO    BREAK   ;IR A DETECTAR EL COMIENZO DE LA PROXIMA TRAMA DMX
  365.         GOTO    NDP
  366.        
  367. NOT_EQ2
  368.         MOVF PASOS_TILT, W
  369.         SUBWF CONTA_PASOS_TILT,W  ;F-W   GUARDO RESULTADO EN W 
  370.         BTFSS STATUS, C
  371.         GOTO GIRO_DERECHA2
  372.         GOTO GIRO_IZQUIERDA2    
  373.  
  374. GIRO_DERECHA2
  375.         INCF    CONTA_PASOS_TILT,F
  376.         INCF    CONTA_TILT,F    ;CONTADOR DE TABLA DE SECUENCIA PARA EL PAP
  377.         MOVLW   .255    ;ESTE ERA EL VALOR DEL TEMPORIZADOR
  378.         MOVWF   COMPENSAR
  379.         MOVF    CONTA_PASOS_TILT,W
  380.         SUBWF   PASOS_TILT,W
  381.         MOVWF   COMPENSAR       ; PROPORCIONAL AL RETARDO, MAS LEJOS, MENOS TIEMPO
  382.  
  383.         GOTO    NDP
  384.        
  385. GIRO_IZQUIERDA2
  386.         DECF    CONTA_PASOS_TILT,F      ;
  387.         DECF    CONTA_TILT,F    ;CONTADOR DE TABLA DE SECUENCIA PARA EL PAP
  388.         MOVLW   .255    ;ESTE ERA EL VALOR DEL TEMPORIZADOR
  389.         MOVWF   RESTO
  390.         MOVF    PASOS_TILT,W
  391.         SUBWF   CONTA_PASOS_TILT,W
  392.         SUBWF   RESTO,W
  393.         MOVWF   COMPENSAR       ;VALOR  PROPORCIONAL AL RETARDO, MAS CERCA, MAS  TIEMPO
  394.  
  395.         GOTO    NDP
  396.  
  397.  
  398.  
  399.  
  400. ;************************************************************************************************
  401. NDP                     MOVF    CONTA_PAN,W
  402.                         PAGESEL TABLA_PAN
  403.                         LCALL   TABLA_PAN
  404.                         ;DEMORA PROPORCIONAL A LA DIFERENCIA ENTRE PASOS, MAS PASOS MENOS DEMORA, ESTA MAS LEJOS...
  405.                         MOVWF   PUERTO
  406.                        
  407.                         MOVF    CONTA_TILT,W
  408.                         PAGESEL TABLA_TILT
  409.                         LCALL   TABLA_TILT
  410.                         ANDWF   PUERTO,W        ;UNO AMBAS SALIDA DE TABLA PARA SALIR POR EL PUERTO B
  411.                        
  412.                         MOVWF   PORTB
  413.  
  414.         ;               MOVF    VELOCIDAD,W ;PASO EL DATO DE VELOCIDAD LEIDO EN EN TERCER CANAL
  415.         ;               MOVWF   COMPENSAR       ;AL CONTADOR DE DEMORAS COMPENSAR
  416.  
  417.         ;               CALL    DEMORA
  418.                         GOTO    BREAK   ;GOTO   COMPARAR
  419. ;;*********************************************************************************************
  420. DELAY   CALL    DEMORA          ;RETARDO ENTRA PASOS, VARIABLE SEGUN LA DIFERENCIA DE PASOS
  421.                 DECFSZ  COMPENSAR,F     ;A MAS PASOS, MENOS DEMORA, AL ESTAR MAS CERCA, INCREMENTA LA DEMORA
  422.                 GOTO    DELAY           ;PARA QUE EL MOTOR SE ACERQUE DE FORM MAS SUAVE
  423.                 RETURN
  424.  
  425. DEMORA 
  426.                 MOVLW   .2
  427.                 MOVWF   LOOP1
  428. OTRO2   NOP
  429.                 CLRWDT
  430.                 DECFSZ  LOOP1,F
  431.                 GOTO    OTRO2
  432.                 RETURN
  433.  
  434.  
  435. ;#################################################################################################
  436.  
  437.         ORG     100H   
  438. POSICION_CERO   ;EN EL ENCENDIDO, AMBOS EJES GIRAN HASTA ENCONTRAR EL FIN DE CARRERA RESPECTIVO
  439. ;                                       Y COLOCAR EN CERO LOS CONTADORES CRRESPONDIENTES
  440.                 MOVLW   .255
  441.                 MOVWF   CONTA_PASOS_TILT
  442.                 MOVWF   CONTA_PASOS_PAN
  443.                 MOVWF   POSICION
  444.        
  445. BUSCAR_CERO
  446. ;                               GIRO_IZQUIERDA DEL MOTOR DE TILT, EN BUSQUEDA DE LLEGAR AL FIN DE CARRERA, PARA SU POSICION DE CERO
  447.         BTFSS   FC_TILT ;ESTA TOCANDO EL FIN DE CARRERA DE TILT
  448.         GOTO    $+3
  449.         DECF    CONTA_PASOS_TILT,F      ;
  450.         DECF    CONTA_TILT,F    ;CONTADOR DE TABLA DE SECUENCIA PARA EL PAP
  451.  
  452.         BTFSS   FC_PAN          ;ESTA TOCANDO EL FIN DE CARRERA DE PAN
  453.         GOTO    $+3
  454.         DECF    CONTA_PASOS_PAN,F       ;
  455.         DECF    CONTA_PAN,F     ;CONTADOR DE TABLA DE SECUENCIA PARA EL PAP
  456.  
  457.         MOVF    CONTA_PAN,W
  458.         PAGESEL TABLA_PAN      
  459.         LCALL   TABLA_PAN      
  460.         MOVWF   PUERTO
  461.         MOVF    CONTA_TILT,W
  462.         PAGESEL TABLA_TILT     
  463.         LCALL   TABLA_TILT     
  464.         ANDWF   PUERTO,W        ;UNO AMBAS SALIDA DE TABLA PARA SALIR POR EL PUERTO B
  465.                        
  466.         MOVWF   PORTB
  467.  
  468.         PAGESEL DELAY2
  469.         LCALL   DELAY2
  470.         LCALL   DELAY2
  471.         DECFSZ  POSICION,F
  472.         GOTO    BUSCAR_CERO     ;REPITE ESTE LOOP UN MAXIMO DE 255 VECES, PARA ASEGURARNOS SI ESTAN EN EL LADO OPUESTO
  473.  
  474.         CLRF    CONTA_PASOS_PAN
  475.         CLRF    CONTA_PASOS_TILT
  476. ;       INCF    CONTA_PASOS_TILT,F      ;ME ASEGURO QU TOMEN EL VALOR UNO
  477. ;       INCF    CONTA_PASOS_PAN,F
  478.  
  479.  
  480.         RETURN
  481.  
  482.                
  483. ;************************************************************************************************
  484.  
  485. DELAY2 
  486.                 MOVLW   .150
  487.                 MOVWF   LOOP3
  488.                 MOVLW   .100
  489.                 MOVWF   LOOP1
  490. OTRO22  NOP
  491.                 NOP
  492.                 NOP
  493.                 NOP
  494.                 NOP
  495.                 NOP
  496.                 CLRWDT
  497.                 DECFSZ  LOOP1,F
  498.                 GOTO    OTRO22
  499.                 DECFSZ  LOOP3,F
  500.                 GOTO    OTRO22-2
  501.         INCF    DESTELLO,F
  502.         BCF             LED                                    
  503.         BTFSC   DESTELLO,2 ; DESTELLO DEL LED INDICADOR DMX, EN ESTE CASO, INDICA QUE SE ESTA POSICIONANDO A CERO
  504.         BSF             LED
  505.                 RETURN
  506.  
  507.         END

EL  Circuito impreso


El proyecto terminado y funcionando, plaqueta



Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #29 en: 01 de Septiembre de 2010, 18:06:14 »
Hola, me alegro que te agrade el diseñito...
es posible colocar más motores repitiendo este diseño, si te fijas en el programa dice
Código: ASM
  1. MOVLW   .1      ;PORTB,W        MOVWF   DIPSWICH        ;DIRECCION DMX QUE SE ASIGNA EMPLEANDO 8 DIP SWICH (EN BINARIO)

es decir, configura para el canal 1 y 2, (el micro es muy pequeño, asi que solo dos motores)
Las entradas que dicen FC1 significa Fin de Carrera, y es para conectar algun sensor o reed swich o interruptor , ya que al encender, como cualquioer movil de iluminacion, se setea, buscando la posicion cero...   :mrgreen:

Saludos!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...