Contar pulsos con CCP en modo captura

#41
Cuando deja de recibir pulsos tendría que ponerse en cero la frecuencia y el duty, no sé como hacerlo.
Cuando recibe un pulso largo o tendría que quedar en 99% hasta que el pulso se termine y eso no sé como hacerlo.
Son pocos cambios los que se tienen que hacer para eso.

Adjunto el programa con los cambios, y ahora ya muestra del 0 % al 100 %
El ciclo activo válido en simulación, ya es del 3 al 97 % a una frecuencia de 150 Hz.
 

Adjuntos

#43
Hola estuve probando el programa muy bien, tengo una consulta ahora necesito adecuar la señal para que llegue bien cuadrada a la pata del pic me recomendaron un Smith trigger o un lm2907, con el lm2709 yo estuve probando usando el Smith que trae interno y no anduvo mal pero es difícil de estabilizar que integrado me recomiendan y lo otro que no logro resolver es cuando corto los pulsos no vuelve a cero queda en la ultima medición como se puede hacer cuando no recibe ningún pulso por unos microsegundos que quede en cero, el duty cuando sube la frecuencia tiene que bajar? o tendría que subir?
 

Adjuntos

#44
Hola estuve probando el programa muy bien, tengo una consulta ahora necesito adecuar la señal para que llegue bien cuadrada a la pata del pic me recomendaron un Smith trigger o un lm2907, con el lm2709 yo estuve probando usando el Smith que trae interno y no anduvo mal pero es difícil de estabilizar que integrado me recomiendan y lo otro que no logro resolver es cuando corto los pulsos no vuelve a cero queda en la ultima medición como se puede hacer cuando no recibe ningún pulso por unos microsegundos que quede en cero, el duty cuando sube la frecuencia tiene que bajar? o tendría que subir?
Buenas.
Lo de poner a cero cuando se corta los pulsos, podrias activar una bandera para saber si hay señal. te paso un ejemplo:
 

Adjuntos

#45
Ahora necesito adecuar la señal para que llegue bien cuadrada a la pata del pic, me recomendaron un Smith trigger o un lm2907
Puedes usar un Disparador Schmitt con transistores, con un amplificador operacional, o usar compuertas.
Lo otro que no logro resolver es cuando corto los pulsos no vuelve a cero queda en la ultima medición.
¿Cómo se puede hacer cuando no recibe ningún pulso por unos microsegundos que quede en cero?
No simules el circuito, mejor realiza pruebas físicamente, porque en proteus los pulsadores y botones dejan pasar las ondas cuadradas como si fueran resistencias.

El programa está realizado para que muestre 0 en ausencia de señal.
 
#46
Estoy haciendo pruebas física con el Lm2907 tomo la medición pata1, uno pata 2 con pata 4 y un capacitor 10 nanos a masa,la salida a rb0 pata 8, pata 5 a masa, pata 11 preset a 9 volt y pata 10 a 5 volt, una resistencia de 10 k a pin rb0.

Funciona bien controlas por el preset el funcionamiento cuando corto los pulsos no se pone a cero mañana subo fotos de la placa que hice.
 

Adjuntos

#47
Quedo perfecto! Funciona muy bien, solo un detalle que se debería cambiar que es el duty, cuando sube la frecuencia debería subir también y si se pones en corto la salida se tendría que poner al 100% y estaría terminado!


Entonces si calculamos ton*100/(ton+toff) me da la medición actual que cuando sube la frecuencia baja el duty
Si calculo toff*100/(toff+ON) funciona al revés o estoy equivocado?
 
Última edición:
#48
Hola me trajeron una fuente hoy para probar la que estamos armando y era como pensamos, cuando sube la frecuencia y la tensión sube el duty! en la que estamos haciendo baja la probamos con misma bobina a la misma tensión y la que trajeron en 6 volt tenia una frecuencia de 160 Hz y un duty de 70% y la que estamos construyendo en 6 volt tenia una frecuencia de 163 Hz y un duty de 42% tengo que cambiar eso.

Ahora no es que cuando mayor frecuencia menor trabajo?
Como cambio para que me de al revés que suba el duty cuando sube la frecuencia?
 
#49
La frecuencia y el ciclo activo (Duty Cycle) son cosas diferentes.
El ciclo activo no tiene porque subir ni bajar cuando sube la frecuencia, y viceversa.
Se puede mantener el mismo ciclo activo aunque la frecuencia suba o baje.
O sea que la frecuencia se puede mantener en 160 Hz, con un ciclo activo que cambie del 1 % al 99 %
Y ésto como mencioné, es inverso, se puede variar la frecuencia y mantener el mismo ciclo activo.

Lo que puede estar pasando, es que ese equipo no esté realizando una lectura correcta y muestre un ciclo activo "proporcional" a la frecuencia.
Para verificar eso, necesitas un osciloscopio que cuente con frecuencímetro, o usar uno aparte.
Con eso podrás realizar una comprobación visual sobre las variaciones de frecuencia y ciclo activo, para determinar cuál de los equipos es el que está mostrando las lecturas de forma correcta.
 
#50
Estube haciendo un montón de pruebas y el programa que tenemos esta bien solo mide al revés cuando sube la frecuencia baja el duty, como modificó para que mida que cuando sube la frecuencia suba el duty?
 
Última edición:
#54
Lo que pensaba es si ahora mido y cuando la frecuencia sube baja el duty y estoy así duty = ton*100/(ton+toff) si cambio a duty=toff*100/(toff+ton) no tendría que mostrar la medición a revés?
 
#55
Efectivamente darkbytes funciona de maravillas y marca el duty sube y todo! Muchas gracias por todo lo que me enseñaste me queda hacer una buena fuente y ver bien tema de ruidos y porque de repente muestra 3450 de la nada y muestra varias ZZZ o oscila de 48 a 58 todo tema de ruidos me parece.
 
#59
De la misma forma, lo que vas a manejar son variables, no registros.
No importa si es para un valor del ADC, el procedimiento para promediar es el mismo.