TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: LAB_je en 18 de Julio de 2006, 08:42:37
-
ola a todos!!! me a surgido un problemilla en mi proyecto que no se muy bien como afrontar!!tengo que realizar la deteccion del paso por cero de una señal señoidal mediante el convertidor A/D!!el problema principal de ello es que tiene que ser muy preciso y todas las pruebillas que he conseguido realizar asta el momento no lo son!!estoy trabajando con un 18F452 y con un entorno en C.A alguien se le ocurre alguna idea de realizar con precision dicha deteccion del paso por cero de la señal analogica con forma de senoide??????
-
Hola LAB_je, si buscas por el foro verás que ese tema a sido tratado varias veces e incluso hay circuitos posteados, y de consejo ya te estaría diciendo que del A/D te olvides si lo que buscas es exactitud.
Un saludo.
Atte. CARLOS.
-
Efectivamente como dice Carlos si quieres precisión te tienes que olvidar del conversor ADC, so pena que tengas una frecuencia muy baja de la señal a muestrear y una tasa de conversión muy alta. Lo mejor es untilizar una circuito detector de cero.
Un saludo
-
De conversor A/D para un paso por cero? Ni te lo plantees hermano. No funcionará ni por equivocación.
No se como lo resuelven en las respuestas que ya hay en el foro, pero si yo lo tuviese que resolver, haria un semipuente con dos diodos, para que no aparezca el semiciclo negativo, y de ahí detectar el cero mediante un AO, y de ahí a una entrada con interrupcion al micro. Cada interrupcion es un paso por cero. Pero ya te digo, que no he leido como lo solucionan la penya del foro.
Uno que opina
Atentamente
Deimos
http://astroelectronica.iespana.es/
-
En mi opinión , parece ser un ejercicio para la universidad...
Por supuesto para detectar un cruce por cero, deberá antes, montar la senoidal en una continua. :) y adaptar los niveles de limite superior e inferior a los del PIC.
Si la onda es de frecuencia constante, se podría luego de algunos ciclos, determinar la frecuencia de la onda y su cruce por cero con bastante exactitud pero para ello hay que hacer un análisis discreto de la señal.
Saludos
-
bueno por lo que veo todos coincidis en que con el convertidor A/D no voy a conseguir exactitud asiq, siguiendo a vuestros consejos empezare a pensar alguno de los sistemas que me habeis propuesto!!la verdad es que asi da gusto hacer las cosas,muchas gracias a todos!!!!!
-
Pues no necesariamente no es exacto sino que es mas complicado que usar otras formas, si tu en realidad deseas hacerlo con un ADC puedes tomar la referencia positiva el valor maximo de la onda a muestrear, y como referencia negativa el valor maximo negativo de la onda, de ahi verifica el valor que tendras en el adc cuando sea el voltaje positivo y de igual forma los valores que tomara cuando sea negativo, como te das cuenta es medio problematico, ahora si tu usas un PIC que venga con comparadores internos como el PIC16f628, puedes realizar la comparacion con GND que es bastante util y tendras una señal de curuce por cero bastante buena, y en su defecto tambien puedes usar un lm741 en modo comparador y de igual forma comparar con GND la onda senoidal que te dara un señal cuadrada de dos niveles en el que cada xcambio de nivel te indica cruce por cero.
Suerte :mrgreen:
-
Pues no es tan facil y la explicación es que en un sistema muestreado, nada te dice que cuando tomes la muestra lo haga justo en el cero o en el valor positivo, la muestra caerá aleatoriamente delante o detras del cero o del máximo, en el caso del máximo ni siquiera sabriamos si estamos tomando el valor correcto o no, en el caso del cero si por ser un valor único. Por consiguiente con un sistema discreto nunca podremos saber si coincide la muestra con el punto deseado. Esto solo sería posible si el tiempo entre muestras es muy seguido y tomamos por ejemplo 512 muestras, para una frecuencia de 50 Hz tendriamos 20ms/512 = 39 uS, que seria el máximo error que cometeriamos, pero claro no hay ningun micro que muestree a esa velocidad (creo que los micros de Mcrochip no llegan aunque hay ADC externos que sí podrian muestrearlo).
Un saludo.
-
En el Dimmer con mando (http://elrebujito.es/modules.php?name=News&file=article&sid=110&mode=&order=0&thold=0) lo hice utilizando un LM741 en modo comparador como describe patolinec.
Luego, en el Minidimmer (http://elrebujito.es/modules.php?name=News&file=article&sid=180&mode=&order=0&thold=0) lo hice utilizando la entrada de interrupción externa del PIC, que es Schmith Trigger.
-
la verdad es que seguramente siga la opcion que me da patolinec, de la cual posteriormente me da un ejemplo nocturno (muy bueno por cierto!!!!y muy bien llevado a cabo!!).muchas gracias por vuestros sabios consejos, en caso de que me surja algun tipo de problema volvere a ponerme en vuestras manos!!!