desktop

Contar pulsos con CCP en modo captura

En cualquier microcontrolador se toma la tensión que ingresa al conversor para realizar diversas operaciones.
Si tomas de referencia 5 voltios como nivel máximo, tendrás que realizar un circuito que entregue un voltaje a su salida dentro de ese rango.
Y la amplificación se tendrá que calcular partiendo del nivel de voltaje que entregue el sensor que uses.

El tiempo de ejecución no mejora realizando funciones o sub rutinas fuera de bucle.
Eso depende de la frecuencia de operación y del tiempo que se tarden en ejecutar las instrucciones.
Si mejoran la estructura del programa porque sirven para optimizar procesos, pero la ventaja principal es que pueden ser llamadas en varias partes del programa sin tener que volver a escribir la misma rutina.
 
Funciona todo perfecto, lo único sigo con el problema de la medición de la frecuencia que pega saltos y no logro estabilidad hay manera de disminuir el ruido por software? O voy a tener que promediar frecuencia y duty antes de mostrarlo de alguna manera que no afecte la medición y la pregunta es como?
 
Última edición:
No hay otra solución mejor que promediar, tenía problemas con el adc y promediando quedo perfecto, el tema como promedio cuando ya tengo el dato de la frecuencia y el duty para mostrar el valor Correcto, si lo hago del timer no me da el valor! Es un lio!
 
Es que el promediar puede traer problemas, una vez lo intente con una interface que procesaba datos por RS232, el muestreo era bajo (cada 20 muestras), y se generaban lecturas muy alejadas una de otra. Si mostraba un 35 bajaba a 25, y como era temperatura el descenso debía ser lineal (1 o 2 grados de diferencia). Luego me di cuenta que algunas veces no llegaban los datos y lo contaba como 0, y eso afectaba la media de la muestra. Posiblemente ese sea el problema.
 
También se debe tener en cuenta que antes de realizar el promedio, se tiene que limpiar la variable que lleva la suma.
Esto es para evitar que se desborde cuando ya contiene datos anteriores.
Esa puede ser la causa de que a veces se muestre un valor más alto.

Y por lo que menciona ruben90, prefiero no realizar promedios.
Un Timer me ha servido bien para mostrar los datos periódicamente.

Si el problema se presenta con la frecuencia, se puede hacer esa lectura aparte, con el Timer 0 como contador externo.
Tal vez de esa forma se consiga evitar esos desbordes repentinos.
 
recapitulemos, esto no deberia ser tan complicado creo XD...

¿tienes el esquema del circuito en cuestion?¿podrias publicarlo? le di una hojeada y no vi nada o me lo salte, y me parece que la mejor opcion para eso seria usar el lm2907... por la cuestion que puedes fijar un offset.

si publicas el esquema podriamos hacerlo juntos.
 
yo pondria un divisor resistivo para que en el pin 10 me dieran unos 2.5V como offsetv y probaria
mas o meno asi:
vasd.JPG

la idea es que tomes un punto de la frecuencia que sea estable.
 
Última edición:
pues prueba alimentandolo con 5v y pon ese divisor resistivo que de 2.5v XD... deberia funcionar. ademas prueba con los 9v

y quizas con el pin4 se pueda hacer lo mismo pero con 1v... no se.

como te comento es agarrar puntos estables.
 
Última edición:
Estube probando y con el divisor resistido llevándolo a 2,5 volt estuvo más estable, la conexión de la pata 3 no funciona, y va mejor con 9 volt, ahora colocando un motor de 12 volt el duty tendría que estar al 100% ya que es todo su ciclo, ni enciende y apaga como las bobinas, eso no lo hace debería mostrarlo pero no es tan importante
 
Última edición:
Atrás
Arriba