Está en la página 1de 4

ELECTRONICOS IV

MEDIDOR DE CAPACIDAD:

Con slo un PIC 16F628A y un popular temporizador 555 puedes tener, en una tarde de trabajo, un medidor de capacitores que te sorprender por su sencillez constructiva, por su facilidad de uso y, sobre todo, por su precisin utilizando componentes comunes. Tal como puedes ver en el circuito, el temporizador 555 debe ser de tecnologa CMOS y los ms populares son los fabricados por Harris, Texas Instruments, Philips, Intersil y Thomson. El circuito integrado es bsicamente el mismo que el NE555 comn, con la nica diferencia que la tecnologa de fabricacin empleada es otra. Los beneficios que trae la utilizacin de este tipo de 555 es el bajo consumo (60uA) sumado a la precisin (2%) y la bajsima necesidad de corriente para activar entradas como THRESHOLD, TRIGGER y RESET (20pA).

Teora de funcionamiento
El funcionamiento del instrumento que te presentamos hoy se basa en el funcionamiento del 555 como multivibrador monoestable. Para efectuar la medicin del capacitor, el microcontrolador se encarga de manejar las entradas RESET yTRIGGER en forma adecuada y, una vez disparado el multivibrador, toma el tiempo en que OUTPUT permanece en estado alto (HIGH). Como se puede apreciar en el diagrama siguiente, el tiempo que dure el pulso generado ser directamente proporcional al valor de C (que es el capacitor bajo prueba) y de Ra. Repasando brevemente el modo de operacin de un multivibrador monoestable, podemos recordar que inicialmente C se cargar a travs de Ra, intentando alcanzar una tensin de carga equivalente a la tensin de alimentacin del circuito. En la prctica, esto nunca llega a suceder ya que el transistor conectado en el Pin 7 del IC provocar la descarga de C cuando la misma alcance los 2/3 de la tensin de alimentacin.

Un multivibrador monoestable clsico con el 555

Para lograr un funcionamiento deseado, el PIC colocar un estado bajo en el Pin 4, dando RESET al temporizador. Luego disparar (TRIGGER) el monostable mediante la colocacin de una muy breve transicin desde un estado alto a uno bajo para luego retornar y quedar en un estado alto hasta el prximo disparo del multivibrador. Durante el flanco descendente del impulso de disparo, el LM555 activar su conteo cambiando el estado del Flip-Flop interno del IC, lo que permitir la carga de C al liberar el transistor interno que lo mantena forzado a un potencial de GND.

Al momento de dispararse el TRIGGER, el transistor interno (Pin 7) libera al capacitor (en nuestro caso, de valor desconocido) de un potencial igual a GND y permite la carga de este componente a travs de la resistencia Ra que, en nuestro circuito, ser la seleccionada para cada rango y estar formada por un potencimetro multi-vueltas y una resistencia fija. El trabajo de seleccin para determinar cul rama de resistencias se ocupar de cargar el capacitor estar a cargo del PIC y ser en funcin del resultado que vaya obteniendo a medida que la salida OUTPUT del multivibrador vaya evolucionando. Esto es: el PIC inicia un acumulador de tiempo y, si el mismo se excede en determinada cantidad de cuentas, el PIC entender que no se trata de un capacitor pequeo (escala de pico Faradios) y conmutar automticamente a drenar corriente a travs de la rama de las resistencias indicadas como nano Faradios.

MENDOZA REYES, GERMAN

FIEE - UNI

Resumiendo: el PIC maneja en forma constante al multivibrador y lee el tiempo que dura el pulso de salida de ste cuando se produce el cambio de estado en OUTPUT. Esa longitud de tiempo representa un equivalente al valor del capacitor bajo prueba (CUT, Capacitor Under Test).

EL PROGRAMA

MENDOZA REYES, GERMAN

FIEE - UNI

#include "d:\Archivos de programa\PICC\Devices\16F628A.h" #FUSES NOWDT,NOLVP,MCLR,INTRC #USE delay(clock=4M) #include "lcd4picAB.c" #define pulso pin_b0 #define flag pin_b2 #define trigger pin_b6 #define reset pin_b7 Int16 TFB; //tiempo de flanco de bajada float AP; //valor final del ancho de pulso /*********** FUNIONES **************/ long int ss_get_timer1(void);//devuel el valor del contador FIEE - UNI

void main(void) { int n=0; /**** inicializa el LCD ****/ TRISB=0x01; TRISA=0xF0; lcd_init(); lcd_putc("CAPACIMETRO-UNI"); /***************************/ setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);//configuro el timer1 /*****************************/ output_high (reset); output_high(trigger); /*****************************/ output_high(pin_b2); //para medir nanofaradios

MENDOZA REYES, GERMAN

while(true) { TFB=ss_get_timer1(); AP=TFB*0.9; //ancho de pulso en microsegundos de timer1 //a 4MHz el T=1us*timer1 printf(lcd_putc,"\nPulso=%6.1f nf",AP);//visualiza medida en LCD } } long int ss_get_timer1(void) //funcion captura el valor contador del timer1 { long int contador; //variable de 16bits /*****************************/ output_low(pulso); //ponemos en bajo el pin pulso set_tris_b(0x01); //configuramos el pin pulso como entrada /** actibamos el timer 555 **/ /*****************************/ output_high(reset); output_high(pin_b2); output_toggle(trigger); output_toggle(trigger); /** activamos el contador **/ /*****************************/ while(!input_state(pulso)){} //se queda preguntando por el inicio del pulso set_timer1(0); //inicio el temporizador TIMER1, lleva la cuenta del tiempo incrementando cada 1us while(input_state(pulso)){} //pregunto si termina el pulso contador=get_timer1(); //cuando finaliza, obtengo el dato del TIMER1 que equivale al tiempo output_low(reset); delay_ms(30); //espero 30ms para una nueva medida return contador ; } FIEE - UNI MENDOZA REYES, GERMAN

También podría gustarte