Autor Tema: arranque suave con 12f675  (Leído 16940 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
arranque suave con 12f675
« en: 14 de Abril de 2011, 07:16:51 »
Hola amigos del foro.
  estoy haciendo un arrancador suave para un motor trifasico, leyendo el cruce por cero  y ahora luego de terminarlo me salto un problema que no puedo resolver.. o sea el drama esta en el desfasaje.. si conecto un motor a la fase que leo el cruce.. la variacion la hace perfecta, pero las otras fases, hace cualquier cosa, por ende el motor no arranca.. hasta que no pasa toda la parte de variacion del programa.. creo quie error puede estar en la frecuencia pero no estoy seguro. alguien puede ayudarme? aca les paso el codigo fuente .-


muchas gracias.




LIST P = 12f675
        INCLUDE "P12f675.INC"    
      
         __CONFIG   _CPD_OFF & _CP_OFF & _BODEN_OFF  & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT



;**CONSTANTES**
VALOR1      EQU   .164   ;VALORES PARA EL RETARDO
VALOR2      EQU   .1

;**VARIABLES**
REG1      EQU   H'20'   ;VARIABLES LOCALES DE LA SUBRUTINA DE RETARDO
REG2      EQU   H'21'
AUX         EQU H'22'
SEMI_PERIODOS   EQU H'23'
PASOACTUAL      EQU H'24'
CONTADOR      EQU H'25'
COPIA_CONTADOR      EQU H'26'
#DEFINE BANCO0   BCF   STATUS,RP0
#DEFINE BANCO1   BSF   STATUS,RP0
#DEFINE PULSADOR   GPIO,4
#DEFINE CRUCE   GPIO,2
#DEFINE TRIAC   GPIO,1


;**********************************VECTOR RESET*************************************
      
      ORG     0x00
      
        goto    INIC             

;**********************************PROGRAMA PRINCIPAL********************************

INIC   BANCO1         
       MOVLW   B'00010100'
      MOVWF   TRISIO      
      CLRF   ANSEL
   
      call 3FFh ;Get the cal value
      movwf OSCCAL ;Calibrate


      BANCO0   
      MOVLW   B'00000111'
      MOVWF   CMCON      
      CLRF   GPIO

INICIO      MOVLW .11
         MOVWF SEMI_PERIODOS
         MOVLW .62
         MOVWF PASOACTUAL
         BCF TRIAC
         CALL RETARDO_100
         CALL RETARDO_100
                  
LEER_CRUCE1     BCF TRIAC      
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE1
            
ESCERO         BTFSS CRUCE
            GOTO ESCERO
                        

            BCF TRIAC
            CALL RETARDO
             BSF TRIAC      
         
            DECFSZ SEMI_PERIODOS,F   ;TIENEN QUE SER 11 SEMI_PERIODOS PARA GENERAR 100mSEGUNDOS (POR PERÍODO HAY 2 CRUCES)
            GOTO LEER_CRUCE1
            MOVLW .11
            MOVWF SEMI_PERIODOS
            DECFSZ PASOACTUAL,F   ;DECREMENTO PASO ACTUAL PARA QUE RECORRA TODA LA TABLA
            GOTO LEER_CRUCE1
            MOVLW .62      ;CUANDO PASO ACTUAL LLEGA A CERO, LA RECARGO
            MOVWF PASOACTUAL
ARRANCO         BSF TRIAC
               GOTO ARRANCO


RETARDO      CALL TABLA
         MOVWF CONTADOR
RET         CALL RET_64
         DECFSZ CONTADOR,F
         GOTO RET
         RETURN

;TABLA CONTENIENDO VALORES PARA VARIACION DE INTENSIDAD CONTINUA

TABLA MOVF PASOACTUAL,W    ;PONE PASOACTUAL EN W
      ADDWF PCL,1    ;PCL=PCL+PASOACT

   
   retlw .5
   retlw .10      
   retlw .12      
   retlw .15   
   retlw .17      
   retlw .20   
   retlw .23      
   retlw .26   
   retlw .29      
   retlw .32   
   retlw .34   
   retlw .37      
   retlw .39      
   retlw .42      
   retlw .44      
   retlw .46      
   retlw .48      
   retlw .50      
   retlw .52   
   retlw .54      
   retlw .56   
   retlw .58
   retlw .60
   retlw .62
   retlw .63
   retlw .65   
   retlw .67
   retlw .68
   retlw .69
   retlw .70
   retlw .71
   retlw .72   
   retlw .73
   retlw .74
   retlw .75
   retlw .76
   retlw .77
   retlw .78
   retlw .79
   retlw .80
   retlw .81
   retlw .82
   retlw .84
   retlw .85
   retlw .87
   retlw .88
   retlw .89      
   retlw .91   
   retlw .93      
   retlw .95      
   retlw .97   
   retlw .99   
   retlw .101      
   retlw .103      
   retlw .105      
   retlw .107   
   retlw .109      
   retlw .111      
   retlw .114      
   retlw .118      
   retlw .122      
   retlw .124      
   retlw .126
      

   
RETARDO_100      MOVLW .221   ;VALOR1
         MOVWF REG1
         MOVLW .130   ;VALOR2
         MOVWF   REG2
         CALL LOOP
         RETURN

RET_64   
         MOVLW .17      ;VALOR1
         MOVWF REG1
         MOVLW .1       ;VALOR2
         MOVWF   REG2
         CALL LOOP
         RETURN

LOOP   DECFSZ   REG1,F
      GOTO   LOOP
      DECFSZ   REG2,F
      GOTO   LOOP
      RETURN


   END

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #1 en: 14 de Abril de 2011, 12:32:44 »
Citar
si conecto un motor a la fase que leo el cruce.. la variacion la hace perfecta, pero las otras fases, hace cualquier cosa, por ende el motor no arranca..

Claro si solo controlas una fase, ¿que querias?
Tienes que poner un triac por cada fase, y deberias poner un detector de cruce por 0 por fase tambien, esto no es necesario cuando la corriente es perfecta pero te aseguro que la tension y frecuencias de linea no siempre lo son.

Un sistema trifasico balanceado (equilibrado) tiene sus fases desfasadas 120º entre si, si tomamos la fase R como referencia cuando esta esta a 0 e inicia ciclo positivo, la fase S esta en 161V positivos (70%) y la T en -161V negativos si sumas las tres tensiones son 0V, por la tanto hay que detectar los cruces por 0 de cada fase esperar el tiempo segun la potencia que queremos darle al motor y activar cada triac a su debido tiempo.

Si por ejemplo quieres hacer un arrancador de 20 en 20% y que cada segundo suba en ese porcenteje, para 50Hz en cada semiciclo de 10ms harias temporizaciones de 2ms, (esto en teoria despues te explico porque no es asi) y en principio contarias cuatro desbordes (de TIMER) activarias el TRIAC_R asi darias 20% y lo harias 100veces para completar 1seg, despues 3desbordes y activarias TRIAC_R ya estas en 40% y asi sucesivamente y para todas la fases. Lo trozos de senoide en que conduce deben estar desfasados igual que lo estan las senoides.

Para lo tiempos tampoco es asi, como te decia antes sino que en cada semiciclo hay unos tiempos de no conduccion del triac, que se vienen correspondiendo con los primeros y ultimos 0.4ms aprox de cada semiciclo de 10ms, ya que hasta que la tension entre anodos no es suficiente para que la IL ( I latched, corriente de enganche) llegue a su valor (varia de unos triacs a otros) por mucha V e I que le des al gate no entrara en conduccion, esto al principio del semiciclo, al final es parecido, proque cuando cae la IH (I hold, corriente de mantenimiento) que es algo menor que IL pero casi igual dejara de conducir. Para el T810 IH=15mA IL=25mA 1º Y 3º cuadrante y 30mA 2º cuadrante, esto hay que tenerlo en cuenta para calcular los tiempos con exactitud.

Bueno haz si quieres, el control de las tres fases, y si puedo y se te echo una mano, creo que tendras que cambiar el PIC 12 por un 16, porque las patillasno te van a llegar, o intentelo primero con un solo detector de cuce por 0 con el 12f y controlas las tres fase por tiempo
si la corriente es buena te funcionara y si es mala haras sufrir un poco al motor   :lol: :lol: pero creo que arrancara, los motores trifasicos son poco escrupulosos  :lol: :lol:

Suerte es un proyecto bonito

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #2 en: 14 de Abril de 2011, 16:37:24 »
Amigo.. todo los ejemplos que vi respecto a rdte tipo de regulacion es usando una sola lectura de cruce por cero.. inclusibe excitando los 3 triacs al mismo tiempo. no se que fallo.. entiendo perfectamente que el defasaje son 120º,,, pero si los disparo en forma simultanea.. deberian disparase con defasaje..
 vos podrias hechar una lectura a este codigo fuente para ver si encontras un error.. o bien ayudarme a desarrollar uno mejor? mil gracias.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #3 en: 15 de Abril de 2011, 05:52:22 »
Mirare el programa, aunque tu mismo lo dices para una fase funciona bien, la que controlas, para las otras no, porque no las controlas, en ese pin que llamas #DEFINE TRIAC   GPIO,1 tienes conectados los tres triacs o solo uno?
Si tienes un solo triac, los motores trifasicos con una sola fase no funcionan, con dos si, y hacen un ruido enorme como si estuvieran rotos incluso dan saltos, pero con una imposible.
Si tienes tres triacs conectados el problema es que si activas los tres al mismo tiempo, le estas dando a cada fase la tension de forma aleatoria, como le cuadra, sin ningun control.

Se puede hacer con un solo detector de cruce por 0, ya te lo dije en el mensaje anterior. Si tomamos la fase R como referencia, a los 60º que son 3.33ms hay otro curce por 0 de la fase T de positivo a negativo (esta desfasada 240º respecto a R)y a los 120 que son 6.66 cruza la S de negativo a positivo (120º desfasada con respecto a R), esto a 50Hz, haciendo los calculos por tiempos se hace, confiando que la compañia electrica nos de corriente aceptable.A los 180º tenemos otro cruce de R por 0 volvemos a contar 3.33ms y nos cruza otra y a los 6.66 la otra y ya tenemos el ciclo completo de 360º. Hay que escoger una temporizacion que sea divisor de todos los tiempos y a partir de ahi con contadores independientes para cada fase ir haciendo los cebados de los triacs.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #4 en: 15 de Abril de 2011, 07:19:40 »
Amigo entonces puedo generar un retardo de 0.0033 seg.  y disparar los triac por separado no todos junto., adjunto paso el plano que utilice... y aunque todos se dispara al mismo tiempo.. voy a probar controlando los triac de a uno. muchas gracias.

LEER_CRUCE1     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
   BTFSC CRUC               ;DETECTA FLANCO POSITIVO
   GOTO LEER_CRUCE1
            
ESCERO   BTFSS CRUCE
   GOTO ESCERO
                        

   BCF TRIACR
                BCF TRIACS
                BCF TRIACT
   CALL RETARDO
       BSF TRIACR
                CALL DELAY_3.33
                BSF TRIACS
                CALL DELAY_3.33
                BSF TRIACT
                         
         
             DECFSZ SEMI_PERIODOS
            GOTO LEER_CRUCE1
            MOVLW .11
            MOVWF SEMI_PERIODOS
            DECFSZ PASOACTUAL,F   ;DECREMENTO PASO ACTUAL PARA QUE RECORRA TODA LA TABLA
            GOTO LEER_CRUCE1
            MOVLW .62      ;CUANDO PASO ACTUAL LLEGA A CERO, LA RECARGO
            MOVWF PASOACTUAL

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #5 en: 15 de Abril de 2011, 12:51:20 »
Si es lo que te decia en el primer post de controlarlo por tiempo.
He simulado tu programa, haces que vaya creciendo demasiado despacio creo yo. Creo que en principio te seria mejor hacerlo que fuera de 10 en 10%, incluso de 20 en 20%, divides el semiciclo en 5 partes de 2ms (de momento se podrian obviar los tiempos de no conduccion del triac). 4 temporizaciones de 2ms disparas triac, 20% durante 1seg por ejemplo, a continuacion 3 tiempos y disparas 40%, con 2 al 60% con 1 al 80 y a tope, eso si con los desfases correspondientes a cada fase.

Tienes problemas en el esquema, es obvio que tienes que poner cada triac con su optoacoplador en un pin por separado, pero aparte eses optoacopladores no te valen, tienen que ser sin cruce por 0, mira lo que pone aqui, esta sacado de la pag esta, es justo lo que tu no quieres, tu lo que quieres es que se active en medio de la senoide no en el cruce por 0.

Fototriac de paso por cero: Optoacoplador en cuya etapa de salida se encuentra un triac de cruce por cero. El circuito interno de cruce por cero conmuta al triac sólo en los cruce por cero de la corriente alterna. Por ejemplo elMOC3041

http://es.scribd.com/doc/5516426/Optoacopladores

Estos optos se usan mucho para hacer ON/OFF pero no valen para regular potencia.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #6 en: 15 de Abril de 2011, 18:01:57 »
agregando la modifiacion,,, de disparo uno a uno los triac.. lo simulaste??

mañana voy a probar y si es necesario elimino tiempos  de apagado de triacs..

ojo yo no quiero hacer un variadr de velocidad mi intencion es hacer arrancar un mtor en forma prograciva.. amortiguar el torque inicial. luego que desarrolle su plena potencia... lo probe con un ptenciometro y unas resistencias y capacitores..

osea 3 dimer uno por fase  y le conecte el motor y funciono.. aunque pasando los 200 vols- antes no arranca... solo sumba.. despues de los 200 arranca sin fuerza a los 250 ya toma color la cosa.. convengamos que bajar tanto la tencion me va a recalentar la bobina,, pero ademas prentendo que en diez seg.max. ya este desarrollando su plena potencia.. es solo amortiguar el arranque.. ya que de la manera que lo tengo funcionando.. con el torque maximo en el arranque me rompe una espina elestica con chavetero y todo.. y por la forma que golpea cuando arranca..

Desconectado handpic

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 72
Re: arranque suave con 12f675
« Respuesta #7 en: 15 de Abril de 2011, 19:22:37 »
Buenas tardes,

No soy un experto en este tema...., pero, ¿el arrancar con parte de la senoide... no hace que pierda potencia y par de arranque?
Si te vale asi, bueno, pero para arrancar suave sin pérdida de potencia creo que hay que emplear un variador, es decir, aplicar toda la tensión pero con diferentes frecuencias, hasta llegar a la de trabajo. Sólo de ese modo se consigue un arranque suave y con suficiente par.

Saludos,

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #8 en: 15 de Abril de 2011, 21:36:26 »
si amigo esta cual usted dice... para hacer un buen trabajo hay que hacer un inversor trifasico para variar la frecuencia.. pero en mi caso solo quiero amortiguar el arranque inicial.. en menos de 10 segundos deberia estar a plana potencia y RPM el motor.,, por eso solo quiero variar la tencion.. " es mas economico este otro circuito"...

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #9 en: 16 de Abril de 2011, 14:13:05 »
Citar
No soy un experto en este tema...., pero, ¿el arrancar con parte de la senoide... no hace que pierda potencia y par de arranque?
Si te vale asi, bueno, pero para arrancar suave sin pérdida de potencia creo que hay que emplear un variador, es decir, aplicar toda la tensión pero con diferentes frecuencias, hasta llegar a la de trabajo. Sólo de ese modo se consigue un arranque suave y con suficiente par.

Claro, los motores trifasicos asincronos, los mas usados con mucha diferencia en la industria y otros sitios, tienen un problema y es que en el arranque consumen hasta 7 veces su intensidad nominal, por lo que hay que arrancarlos con bajp par y baja potencia para que no tiren la linea de suministro, supon en fabricas donde los hay a cientos.

El variador se usa cuando hay que variar la velocidad, porque cuestan 10 veces mas, y en las empresas esta mal visto tirar el dinero  :lol:
ademas con un solo arrancador se pueden arrancar varios motores y variador necesitas uno para cada motor.


Citar
ojo yo no quiero hacer un variadr de velocidad mi intencion es hacer arrancar un mtor en forma prograciva.. amortiguar el torque inicial. luego que desarrolle su plena potencia... lo probe con un ptenciometro y unas resistencias y capacitores..


Ya lo se un variador es muchisimo mas complicado, te lo aseguro.


Citar
osea 3 dimer uno por fase  y le conecte el motor y funciono.. aunque pasando los 200 vols- antes no arranca... solo sumba..


Exacto son tres dimmers uno por fase, pero teniendo en cuenta los desfases que ya te comente. SI a partir de 200V es cuando empieza a andar, pues mas sencillo empieza con el 50% o a la anterior de 20 en 20% le quitas el del 20% y ya empiezas en el 40% igual asi ya te va.

Has mirado lo que te comente de los optos?. hay TRIACs que se disparan directamente desde el PIC son los de gate sensible, pero con un motor como carga es complicado porque le va a meter mucho ruido al PIC.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #10 en: 16 de Abril de 2011, 14:59:06 »
sai amigo.. estoy usando uno de ellos..
 es un opto diac.. lo disparo dispro directamente del pic.. estoy trabajando en modificar el programa,... pero aun no encuentro el punto.. intenta arrancar pero parece que estan en dos fases.. hasta que termina el programa despues arranca perfecto.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #11 en: 16 de Abril de 2011, 15:53:38 »
Pon si quieres el programa y con tiempo te lo miro.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #12 en: 17 de Abril de 2011, 03:16:01 »
amigo aqui te lo paso



quedo en espera.. mil mil gracias.


LIST P = 12f675
        INCLUDE "P12f675.INC"   
     
         __CONFIG   _CPD_OFF & _CP_OFF & _BODEN_OFF  & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT



;**CONSTANTES**
VALOR1      EQU   .164   ;VALORES PARA EL RETARDO
VALOR2      EQU   .1

;**VARIABLES**
REG1      EQU   H'20'   ;VARIABLES LOCALES DE LA SUBRUTINA DE RETARDO
REG2      EQU   H'21'
AUX         EQU H'22'
SEMI_PERIODOS   EQU H'23'
PASOACTUAL      EQU H'24'
CONTADOR      EQU H'25'
COPIA_CONTADOR      EQU H'26'
#DEFINE BANCO0   BCF   STATUS,RP0
#DEFINE BANCO1   BSF   STATUS,RP0
#DEFINE CRUCE   GPIO,2
#DEFINE TRIACR   GPIO,1
#DEFINE TRIACS  GPIO,0
#DEFINE TRIACT  GPIO,4

;**********************************VECTOR RESET*************************************
     
      ORG     0x00
       
        goto    INIC             

;**********************************PROGRAMA PRINCIPAL********************************

INIC   BANCO1         
       MOVLW   B'00010100'
      MOVWF   TRISIO     
      CLRF   ANSEL
   
      call 3FFh ;Get the cal value
      movwf OSCCAL ;Calibrate


      BANCO0   
      MOVLW   B'00000111'
      MOVWF   CMCON     
      CLRF   GPIO

INICIO      MOVLW .11
         MOVWF SEMI_PERIODOS
         MOVLW .62
         MOVWF PASOACTUAL
         BCF TRIACR
         BCF TRIACS
         BCF TRIACT

   
         CALL RETARDO_100
         CALL RETARDO_100
                 
LEER_CRUCE1     BCF TRIACR
                BCF TRIACS
                BCF TRIACT     
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE1
           
ESCERO         BTFSS CRUCE
            GOTO ESCERO
                       
         BCF TRIACR
         BCF TRIACS
         BCF TRIACT
            CALL RETARDO
              BSF TRIACR
              BSF TRIACS
              BSF TRIACT   
         
            DECFSZ SEMI_PERIODOS,F   ;TIENEN QUE SER 11 SEMI_PERIODOS PARA GENERAR 100mSEGUNDOS (POR PERÍODO HAY 2 CRUCES)
            GOTO LEER_CRUCE1
            MOVLW .11
            MOVWF SEMI_PERIODOS
            DECFSZ PASOACTUAL,F   ;DECREMENTO PASO ACTUAL PARA QUE RECORRA TODA LA TABLA
            GOTO LEER_CRUCE1
            MOVLW .62      ;CUANDO PASO ACTUAL LLEGA A CERO, LA RECARGO
            MOVWF PASOACTUAL
ARRANCO        BSF TRIACR
               BSF TRIACS
               BSF TRIACT
               GOTO ARRANCO


RETARDO      CALL TABLA
         MOVWF CONTADOR
RET         CALL RET_64
         DECFSZ CONTADOR,F
         GOTO RET
         RETURN

;TABLA CONTENIENDO VALORES PARA VARIACION DE INTENSIDAD CONTINUA

TABLA MOVF PASOACTUAL,W    ;PONE PASOACTUAL EN W
      ADDWF PCL,1    ;PCL=PCL+PASOACT

   
   retlw .5
   retlw .10     
   retlw .12     
   retlw .15   
   retlw .17     
   retlw .20   
   retlw .23     
   retlw .26   
   retlw .29     
   retlw .32   
   retlw .34   
   retlw .37     
   retlw .39     
   retlw .42     
   retlw .44     
   retlw .46     
   retlw .48     
   retlw .50     
   retlw .52   
   retlw .54     
   retlw .56   
   retlw .58
   retlw .60
   retlw .62
   retlw .63
   retlw .65   
   retlw .67
   retlw .68
   retlw .69
   retlw .70
   retlw .71
   retlw .72   
   retlw .73
   retlw .74
   retlw .75
   retlw .76
   retlw .77
   retlw .78
   retlw .79
   retlw .80
   retlw .81
   retlw .82
   retlw .84
   retlw .85
   retlw .87
   retlw .88
   retlw .89     
   retlw .91   
   retlw .93     
   retlw .95     
   retlw .97   
   retlw .99   
   retlw .101     
   retlw .103     
   retlw .105     
   retlw .107   
   retlw .109     
   retlw .111     
   retlw .114     
   retlw .118     
   retlw .122     
   retlw .124     
   retlw .126
     

   
RETARDO_100      MOVLW .221   ;VALOR1
         MOVWF REG1
         MOVLW .130   ;VALOR2
         MOVWF   REG2
         CALL LOOP
         RETURN

RET_64   
         MOVLW .17      ;VALOR1
         MOVWF REG1
         MOVLW .1       ;VALOR2
         MOVWF   REG2
         CALL LOOP
         RETURN

LOOP   DECFSZ   REG1,F
      GOTO   LOOP
      DECFSZ   REG2,F
      GOTO   LOOP
      RETURN


   END

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #13 en: 18 de Abril de 2011, 07:23:37 »
Sigues haciendo lo mismo cebas los tres triac al mismo tiempo, con una millonesima de diferencia, es lo mismo que cuando los tenias juntos en un pin;

ESCERO         BTFSS CRUCE
            GOTO ESCERO
                       
         BCF TRIACR
         BCF TRIACS
         BCF TRIACT
            CALL RETARDO
              BSF TRIACR
              BSF TRIACS
              BSF TRIACT

Abre este pdf y mira la primera pagina.

http://www.uv.es/emaset/iep00/descargas/Sistemas%20trif%A0sicos.pdf

Fijate ahi les llama Van (R) la azul, Vbn (S) la negra y Vcn (T) la roja. Tu estas cebando las tres a los 8.4ms del cruce por  0 de la azul, donde se cruza con la negra, a la azul le estas dando 15% aprox, a la negra que esta empezando le estas dando un 85% y a la roja que esta en mitad en negativo le das un 50%, todo al mismo tiempo, dices que el motor no anda y zumba, Zumba porque no puede hablar sino te llamaria de todo  :D :D.

Te propongo que te olvides de ese programa y empieces uno nuevo.

Bajate de aqui el programa para hacer los retardos, quedarian mejor con el timer, pero vamos a ver si asi sale.

http://www.todopic.com.ar/foros/index.php?topic=5968.0

detectas cruce por 0 de la fase R, llamas a una demora de 2ms, la haces con ese programa, para el 20% la llamas 4 veces, cebas el TRIACR, llamas a una demora de 3.33ms (es el desfase) cebas TRIACT y otra vez llamas demora 3.33ms y cebas TRIACS, esta seria la secuencia a realizar.
Esta que te pongo es la secuencia con los desfases de las fases, pero hay que descebar los triacs, entonces se me ocurre que mejor en vez de una demora de 3.33ms hagas 2, una de 0.33 la llamas y descebas el que esta cebado, y a continuacion llamas a la de 3ms y cebas el siguiente,  vamos a probar esto asi a ver si lo hacemos andar, y despues ya lo haremos "mas mejor" porque tiene su complicacion. Haciendo esto lo haras andar al 20%, por ejemplo 100 veces=1seg, detectas cruce por 0 otra vez y llamas 3veces demora de 2ms, asi lo pones al 40%, llamas demora de 0.33ms apagas fase R demora de 3ms enciendes T demora de 0.33ms apagas T demora de 3ms enciendes S y asi otras 100 veces=1seg al 40%, lo mismo pero llamando dos veces solo a la demora de 2ms para tener 60% y por ultimo la llamas una sola vez y ya estas al 80%.

Bueno seria un milagro que funcionara a la primera, pero a ver si por lo menos el motor deja de insultarte  :lol: :lol:

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #14 en: 18 de Abril de 2011, 08:10:46 »
MUY BIEN AMIGO.. AHORA LO PRUEBO ASI ME QUEDO..

INICIO   
                MOVLW .100
                MOVWF SEMI_PERIODOS
   
LEER_CRUCE1     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE1
            
ESCERO         BTFSS CRUCE
            GOTO ESCERO

             CALL DEMORA_2MS
                CALL DEMORA_2MS
                CALL DEMORA_2MS
                CALL DEMORA_2MS
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT
                DECFSZ SEMI_PERIODOS
                GOTO LEER_CRUCE1

                MOVLW .100
                MOVWF SEMI_PERIODOS

LEER_CRUCE2     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE2
            
ESCERO2         BTFSS CRUCE
            GOTO ESCERO2

             CALL DEMORA_2MS
                CALL DEMORA_2MS
                CALL DEMORA_2MS
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT

                MOVLW .100
                MOVWF SEMI_PERIODOS

LEER_CRUCE3     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE3
            
ESCERO3         BTFSS CRUCE
            GOTO ESCERO3

             CALL DEMORA_2MS
                CALL DEMORA_2MS
           
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT
                MOVLW .100
                MOVWF SEMI_PERIODOS

LEER_CRUCE4     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE4
            
ESCERO4         BTFSS CRUCE
            GOTO ESCERO4

             CALL DEMORA_2MS
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT

             

ARRANCO_MAXIMA  MOVLW H'13'
                MOVWF GPIO
                GOTO ARRANCO_MAXIMA

               RETURN






DEMORA_2MS movlw     .249      ; 1 set numero de repeticion
        movwf     REG1    ; 1 |
PLoop0  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  goto PDelL3         ; 2 ciclos delay
PDelL3 
        decfsz    REG1, 1  ; 1 + (1) es el tiempo 0  ?
        goto      PLoop0    ; 2 no, loop
PDelL4  goto PDelL5         ; 2 ciclos delay
PDelL5  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.


DEMORA_3MS  movlw     .4      ; 1 set numero de repeticion  (B)
        movwf    REG2    ; 1 |
Loop1  movlw     .186       ; 1 set numero de repeticion  (A)
        movwf    REG3     ; 1 |
Loop2  clrwdt              ; 1 clear watchdog
        clrwdt              ; 1 ciclo delay
        decfsz    REG3, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      Loop2    ; 2 no, loop
        decfsz    REG2,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      Loop1    ; 2 no, loop
        return              ; 2+2 Fin.

DEMORA.33 movlw     .81       ; 1 set numero de repeticion
        movwf    REG4     ; 1 |
Loop0  clrwdt              ; 1 clear watchdog
        decfsz    REG4, 1  ; 1 + (1) es el tiempo 0  ?
        goto     Loop0    ; 2 no, loop
        clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.
      







   END