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

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

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3490
    • http://www.todopicelectronica.com.ar
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
  508.  
  509.  

EL  Circuito impreso


El proyecto terminado y funcionando, plaqueta

« Última modificación: 18 de Mayo de 2008, 21:47:54 por todopic »
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2034
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #1 en: 18 de Mayo de 2008, 21:48:22 »
Muy bueno ese proyecto, amigo todopic  :mrgreen:
Y utilizando el pcb wizard para ello  :D

Muy buenas figuras!

Saludos

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #2 en: 18 de Mayo de 2008, 22:41:20 »
Muy bueno el proyecto !!! una pregunta, con que programa dibujas el mecanizado ?
Gracias desde ya !

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3490
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #3 en: 18 de Mayo de 2008, 22:48:30 »
Muy bueno ese proyecto, amigo todopic  :mrgreen:
Y utilizando el pcb wizard para ello  :D

Muy buenas figuras!

Saludos

Ja ja, ok Ralf, y para Richi777, es el PCB wizard ,es muy simple de emplear, y para estos circuitos simples es ideal, tambien genera la vista de como quedará terminado (muy similar a la ultima foto )

Mañana colocaré un video de como funciona...
por ahora otra foto


Un abrazo

Norberto

Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4848
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #4 en: 18 de Mayo de 2008, 22:54:40 »
 :-/ :-/ sin palabra  :-/ :-/
Saludo Norbe

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3490
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #5 en: 18 de Mayo de 2008, 23:02:53 »
Hola Rafa!, esto es ideal para tu trabajo!, ademas, se posiciona a cero, empleando un par de sensores .... al iniciar el funcionamiento, gira para encontrar el cero mecanico en ambos ejes/motores... el led destella rapidamente...
luego, queda casi fijo, indicando señal dmx  :mrgreen:

Un abrazo!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4848
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #6 en: 18 de Mayo de 2008, 23:10:54 »
lo voy a probar, tengo un monton de  motores PAP por ahi pasando hambre, una pregunta!! en el programa habla de Dip switch pero no lo veo en el esquema? o son los canales fijos???  :mrgreen que escondido te lo tenia  :D :D :D
a ver cuando sube el esquema
un abrazote Norber

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3490
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #7 en: 18 de Mayo de 2008, 23:48:04 »
Ok Stk, lo que pasa es que el codigo originalmente leia el dip swich para conocer la direccion dmx... y lo fuì corrigiendo... y ahora, donde era la entrada, paso a ser salida de motores  :lol:

de alli la diferencia en el codigo... pero estoy empleando en la direccion numero 1... por eso el pulsador en el esquema... que aun no funciona, y será para cargar la dirección...  :-)

cuando esté listo lo cargo nuevamente....

Ok al esquematico....
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3490
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #8 en: 19 de Mayo de 2008, 00:38:58 »
 :D :D
Aqui el esquematico  :D



y ademas los pines de los integrados, para no renegar en la busqueda  :mrgreen:
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17615
    • MicroPIC
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #9 en: 19 de Mayo de 2008, 01:30:11 »
Ya estamos deseando ver el vídeo, gran Norberto. Enhorabuena.
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3490
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #10 en: 21 de Mayo de 2008, 12:11:34 »
 :D :D Ok Nocturno... aqui un par de pequeños videos de como està funcionando... en especial, como responde al cambio de giro de acuerdo a la señal dmx, ademas, como regresa siempre a la posicion inicial


Un gran abrazo!

Norberto
pd: tengo que corregir un par de cositas en el codigo...  :D
« Última modificación: 21 de Mayo de 2008, 12:17:59 por todopic »
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5102
    • uControl
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #11 en: 21 de Mayo de 2008, 12:52:58 »
Hola Norberto!
Que gran trabajo. Felicitaciones!!! Mereces un par de   :-/ :-/

 :D

Saludos.
Ariel.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17615
    • MicroPIC
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #12 en: 21 de Mayo de 2008, 14:52:16 »
¡Qué chulada!, a tus pies, gran jefe.

Yo también te pongo unos  :-/ :-/ :-/ :-/
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7820
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #13 en: 21 de Mayo de 2008, 15:31:49 »
Excelente!!
Lo unico malo es que aun no se le anima al C !!! :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3490
    • http://www.todopicelectronica.com.ar
Re: DMX - otra más! receptor DMX y control de dos motores PAP a 1/2 paso
« Respuesta #14 en: 22 de Mayo de 2008, 00:08:34 »
ja ja ja... una cosa , o Ariel es muy  mezquino con los  :-/  , o en España cotizan a la mitad  :D :D :D :D

Gracias amigos!!!!

Ok a lo del C, te digo Marcos, que  con el seminario, y con el web servserver.... no me queda otra!!!!, se que me tengo que meter...  pero el tiempo!!!!!  :mrgreen:

Un abrazo

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

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


 

anything