Medir el periodo de una señal con un microcontrolador pic

#1
Hola, escribo para hacer una consulta al foro. Para un trabajo de la escuela tengo que hacer un medidor de periodo de una señal que despliegue el periodo en un lcd 16x2, puedo usar un pic 16f628 o un 16f877, y les pido ayuda, no para que me den hecho el trabajo sino para que me indiquen mas o menos que necesito hacer.

Tengo la siguiente idea y me gustaria que me indicaran si voy mas o menos por el camino correcto y que me den mas sugerencias. Tengo pensado echar a andar algun timer (aun no se cual es el ideal para esta tarea), voy a acitvar la interrupción por flanco ascendente en RB0, cuando se detecte una interrupción leeré el valor del timer y lo guardaré en una variable, después en la segunda interrupción volveré a leer el valor del timer y lo guardaré en otra variable, después haré la diferencia entre las dos variables y supongo que el resultado será el periodo pero aún no estoy seguro.

Quisiera saber si lo que pienso hacer está bien o si hay alguna otra manera más eficiente de medir el periodo de alguna señal, agradezco cualquier sugerencia y comentario. Muchas gracias!
 
#2
Depende de la naturaleza de la señal de la que quieres calcular su periodo. El sistema que propones me parece adecuado para señales cuadradas.
 
#3
Mejor utilizar el 877 por comodidad y cargar algun bootloader.

La señal la aplicaria a un comparador tipo lm311 trabajando como comparador, ojo es de colector abierto deberas poner una resistencia de unos 2k2 a 5V.

El montaje de comparador puedes hacerlo de varias formas, con una pequeña histeresi o mediante un filtro retardador (patilla positiva directo a la fuente, negativa a traves de una resistencia y un condensador a masa (pasa bajo)).


Finalmente puedes hacer la medida de dos formas distintas.

Finalmente tienes el timer 1 y 3 asociados a unos comparadores esto te ahorra software, puede que con 16bits se queden pequeños liego con interrupciones puedes ampliar utilizando variables.

Las medidas deberias promediarlas, lo mas sencillo es sumar y despues dividir por el numero de muestras.

Lo mejor es tomar 2,4,8,16,32,64... muestras y sumarlas y despues rotar a la izquierda el resultado (rotar 1 vez = n/2, 2 veces /2, 4 veces /4, 4 veces /16)

De esta forma tienes un periodo mas estable para una señal periodica.
 
#6
hola.! escribo porqUE tambien tengo un problema muy parecido.. necesito medir el periodo con un pic 16f877A y mostrarlo en una lcd, el problema es qUE no se si usar un ne555 para la entrada de los pulsos... espero qUE me ayuden gracias..
aaah pic-man sera qUE puedes subir tu proyecto para guiarme de ahi.? garacias me ayudarias mucho con eso.
 
Última edición por un moderador:
#7
Como veo que ya estais bien encaminados, solo añadire que con el 16f628 teneis suficientes recursos, pero si quereis utilizar el 16f877 solo deciros que el 16F887 dispone de mas prestaciones y es mas economico.