Como en el anterior montaje
frecupl2 teníamos un medidor
de frecuencia realizado en torno a un PIC 16f628, me he puesto a
realizar un medidor de capacidad aprovechando toda las
posibilidades de microcontrolador.
En el montaje
Capmeter había
realizado un medidor de capacidad, pero no había hecho yo
el programa, solo había cogido el firware y lo
había grabado en el chip.
Este montaje es una mezcla de ambos montajes, y realizar yo el
programa.
El medidor de capacidad se basa en la carga y descarga de un
condensador a través de una resistencia.
Esta carga y descarga produce una oscilación de una
frecuencia que se mide en el frecuencímetro. Mediante la
una formula se despeja C y se visualiza en el LCD.
Vf
|
V.inicial
|
V.final
|
R
|
4,8V
|
3,6V
|
1,5V
|
10K
|
Estas medidas son reales medidas con el osciloscopio.
Formula general dela carga del condensador
Vt=Vo(1-e -t/RC)
Carga:
T=RC*ln((Vf-Vt)/Vf)
C=T/(R*ln((Vf-Vt)/Vf))
Descarga:
T=RC*ln(Vinicial/Vfinal)
C=T/(R*ln(Vinicial/Vfinal))
Con estas formulas se saca un algoritmo que nos da una capacidad
dependiendo de la frecuencia.
El que quiera sacarlo que se lo trabaje, no es difícil.
Realizamos un oscilador mediante el comparador que se encuentra
en el 16F628.
Oscilador biestable.
Esquema de medidor de capacidad y frecuencímetro.
El rango de medidas está entre 4,7uF y 5pF. Para medir
valores de mayor capacidad debería cambiar la resistencia
de carga, pero eso no está dentro de mis necesidades.
Como la medida de capacidades pequeñas sería
difícil debido a la propia capacidad intrínseca
del circuito, se coloca un condensador en paralelo de 1,2nf que
se resta automáticamente al resultado.
La puesta a cero es automática con el cambio de escala.
Cuando se cambia de escala no debe haber ningún
condensador en las puntas de medición.
Puede existir variaciones mínimas en el ajuste, pudiendo
aparecer un "-" cuando la puesta a cero no es exacta.
Esto no es importante en la mayoría de los casos, solo es
mínimamente apreciable en valores pequeños de pico
faradios. La precisión en la mayoría de los casos
es de +- 1pf .
Vemos el prototipo midiendo un condensador de 47pF,
señalado con un punto rojo.
En este caso la precisión es exacta, pero lo normal es
+-1pF.
Sigo manteniendo las dos líneas de programación,
en C y ASM, teniendo algunas diferencias.
Para cambiar de escala debemos que mantener el pulsador apretado
hasta que nos muestre en el LCD "Cambiando escala ",
C
|
ASM
|
0-65500 Hz
|
0-16MHz 1S
|
0-655 KHz
|
0-16MHz 0.1S
|
0-6.5 MHZ
|
0-65MHZ 0.4S
|
0-65 MHz
|
Medidor
C
|
Medidor C
|
|
Ejemplo: 32768 Hz
|
Ejemplo:
000.032.768 Hz
|
frecapC.hex
|
frecapASM.hex
|
Como curiosidad he probado el reloj interno del Chip a 4Mhz y
como bien dicen las características tiene margen de
error. Para medidor de C valdría, pero como medidor de
frecuencia presenta margenes no tolerables. Como ejemplo para
medir una base de tiempos de 32768, nos da una medición
de 31928, -2,5%.
No me pidáis los códigos fuente, hasta dentro de 1
año no los libero.
Al que le interese el Chip 16F628 con el programa grabado, lo
vendo por 6€ incluido el porte.
Me ha llegado una partida de 16F648 que es de 4k en vez de 2k,
pero el programa funciona igualmente.
Próximamente realizare el montaje en circuito impreso.
Saludos.
SETA43
Juan Galaz