TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Karlss_Infante en 24 de Enero de 2006, 12:26:00

Título: Ejemplos de detector de paso por cero
Publicado por: Karlss_Infante en 24 de Enero de 2006, 12:26:00
Alguien tiene algún ejemplo  q utilicen la detección de paso por cero, y más concretamente, el procedimiento a seguir para activar una salida trascurrido un perido de tiempo tras la detección de paso por cero.
Cambiando totalmente de tema, y no se si estoy diciendo un disparate enorme pero existe una resistencia variable que pueda ser controlada de forma digital o algún procedimiento q lo realice???
Título: RE: Ejemplos de detector de paso por cero
Publicado por: Chaly29 en 24 de Enero de 2006, 12:54:00
HolaKarlss_Infante, la deteccion del cruce por cero es conveniente hacerla por hardware, para ganar en velocidad, y dejar las cosas importantes para que las procese el PIC, tendrás que realizar un circuito que entregue un pulso en el preciso momento que la tensión pase por el cero.

Para activar una salida lo único que tienes que hacer es que el pic detecte el pulso del detecto, en este momento disparas el contador o un TMR junto con la salida que deseas controlar y después de cumplido el tiempo desactivas todo, pones los contadores a cero y quedas a la espera del próximo pulso.

Existen potenciómetro digitales que por medio de un programa adecuado y un PIC logras los mismos resultados que cualquier potenciómetro normal, eso si con una señal muy pequeña.

Espero te haya ayudado

Suerte

Atte. CARLOS

Título: RE: Ejemplos de detector de paso por cero
Publicado por: xootraoox en 24 de Enero de 2006, 15:34:00
bueno..... justamente hace poco tuve que usar un detector de cruze por zero y obtube muy buenos resultados al primer intento.... incluso en el osciloscopio se me perfecta la deteccion..... sigue el siguiente enlace para que descargues el archivo en donde he colocado 2 detectores.... el primero es el que yo use y el segundo es por si lo necesitasGiño

http://miarroba.com/foros/ver.php?foroid=348538&temaid=4120538
Título: RE: Ejemplos de detector de paso por cero
Publicado por: Azicuetano en 24 de Enero de 2006, 18:19:00
Hola Karlss_Infante.

En referencia al circuito detector de paso por cero... yo tengo implementado el 2º circuito que nos comenta el colega xootraoox y funciona a la perfección (mañana te lo confirmo porque no recuerdo si es exáctamente igual).

Resistencias variables controladas de forma digital?? Existen.

La casa MAXIM-DALLAS tiene unos cuantos potenciómetros digitales y... el que yo utilicé es el X9313 (de XICOR). Económico y fácil de utilizar. Si te decantas por este último te puedo pasar mi código en asm.

Suerte con tu proyecto!


Un saludo desde Alicante.
Título: RE: Ejemplos de detector de paso por cero
Publicado por: Karlss_Infante en 25 de Enero de 2006, 04:09:00
Ante todo agradeceros la gran ayuda mostrada.
Lo del potenciometro controlador digitalemente no se si existira realmente, es q simplemente sería para ahorrarme los temporizadores que necesitaré para otras
partes del proyecto.
Azicoetano, si puedes pasame el código del potenciómetro digital.

Título: RE: Ejemplos de detector de paso por cero
Publicado por: Azicuetano en 25 de Enero de 2006, 05:35:00
Hola Karlss_Infante.

Ahí va el código que yo utilicé en su día:

Codigo:
INCREMENTA

   call ANTIRREBOTES
   bcf PORTB,0      ; CS->0
   nop      
   bsf PORTB,1      ; INC->1 (lo ponemos a uno para poder, despues del retardo, conseguir un pulso descendente en INC)
   bsf PORTB,2      ; UD->1 (si UD->1 cuando metamos calambrazos en INC el integrado incrementará su resistividad)
   call MINIRETARDO            ; pequeño retardo (38 us)      
   bcf PORTB,1      ; INC->0 (con esto conseguimos el pulso descendente)
   nop
;   call GRABAR

   RETURN



Codigo:
DECREMENTA
   call ANTIRREBOTES
   bcf PORTB,0      ; CS->0
   nop
   bsf PORTB,1      ; INC->1 (lo ponemos a uno para poder, despues del retardo, conseguir un pulso descendente en INC)
   bcf PORTB,2      ; UD->0 (si UD->0 cuando metamos calambrazos en INC el integrado decrementará su resistividad)
   call MINIRETARDO            ; pequeño retardo (38 us)
   bcf PORTB,1      ; INC->0 (con esto conseguimos el pulso descendente)
   nop
;   call GRABAR

   RETURN


Codigo:
GRABAR
   bsf PORTB,1      ; INC->1
   bcf PORTB,0      ; CS->0

   call ANTIRREBOTES

   bsf PORTB,0      ;CS->1

   call ANTIRREBOTES         ; 20 ms minimo para grabar. ajustar mejor el retardo cuando tengas tiempo.

   bcf PORTB,0      ;CS->0
   RETURN      


Tras conectar el X9313 al pic no tienes mas que llamar a las funciones INCREMENTA y DECREMENTA para aumentar o disminuir la resistividad del potenciómetro digital.

INC -> PORTB,1
U/D -> PORTB,2
CS -> PORTB,0

Suerte!!

Un saludo desde Alicante.