La funcion es capturar capacitancias , medirlas y mostrarlas por un LCD alphanumerico . Tambien se tuvo en cuenta el conexionado con la PC , mediante el protocolo RS-232 .
Para simplificar la explicacion de su funcionamiento , a continuacion se divide el proyecto en varias partes :
1) El kernel
El nùcleo de nuestro proyecto se basa en el uso de un microcontrolador PIC , mas precisamente un 16F887 (mas adelante se hablara de este PIC en especial ) .
Al micro lo programamos en leguaje C , con el compilador CCS , de CCS.Inc , aunque dentro del programa se encuentran librerias externas .
2) El LCD
Como en un Tester normal o como en un Puente RC , es de suma importancia la visualisacion de los valores medidos , por eso usamos un LCD alphanumerico de 16x2 lineas color verde , con Backlight (mas especificamente un FDCC1602B , con un controlador SPLC780D).
El LCD fue conectado a un puerto del PIC donde se lo controlo directamente.Este componente requiere de una alimentacion Vcc de 5V
3) Coneccion con la PC
Nos resulto interesante poder compartir los datos obtenidos mas alla del LCD , no solo como funcion practica , sino a manera de aprendizaje . Para esto utilizamos el protocolo de tranferencia serie RS-232 , apoyado por un conversor de niveles de tension MAX232 ; todo esto integrado dentro del gabinete de nuestro proyecto. Lo que se logro fue mandar los valores medidos dentro de nuestro dispocitivo , a una PC (siempre y cuando tenga Puerto Serie ).
4) El programa
Como fue dicho anteriormente , el programa fue desarrollado en lenguaje C . El programa fue planteado en diversos bloques , que seran explicados a continuacion .
Antes de explicar cada funcion , usamos un clock interno a 8 Mhz , sin watch dog timer , no power up timer , master clear enable .
INIT( )
En la funcion INIT ( ) lo que se hace primero es encender el led verde , luego se setea el ADC port y por ultimo mostramos la introduccion en el LCD .
Detectar_capa ( )
Seteo el puerto A como salida , le pongo 5 V a todos los pines, se usa delay de 500 ms para cargar el capacitor, luego seteo el puerto A como entrada , coloco 0 V en todos los pines y leo el conversor AD, si es mayor a 1 significa que esta detectando un capacitor y enciende un led rojo indicandolo , si es menor a 1 se queda detectando el capacitor.
capa_descargado ( )
declaro la variable short , esta solo puede devolver dos posibilidades leo el valor analogico , guardo y si el valor del adc es ugual a 0 , osea que el capa esta descargado devuelve un 1 y sigue con el programa , si no vuelve al short .
descargar_capa ( )
En esta funcion simplemente seteamos los pines como salida primero , entrada despues para descargar el capa ,
medir_capa ( )
Para medir el capacitor , lo hicimos con una tabla de constantes de calibracion . Lo primero que se hace es poner el pin de la resistencia 1 como alto ; entonces leemos el valor de ADC , si este es menor que 255 ( 8 bits ) empieza la cuenta progresiva cada 10 us ( se guarda en cuenta_10us) hasta que se haga mayor . Se desactivan las interrupts , y nos paramos en el LCD donde vamos a escribir . Ahora usamos la tabla en su constante 0 para multiplicarla por el valor que dio la cuanta_10us . Luego nos pasamos a la R2 de ser necesario , nos cambiamos a la constante 1 y realizamos la misma cuenta , y asi sucesivamente con todas las resistencias hasta encontrar el valor mas adecuado.
Hardwere
Llegamos a una parte muy importante en nuestro proyecto , en el cual tuvimos varias complicaciones , llegando realizar varias veces el PCB final , debido a que a medida que progresabamos con el programa , nos encontramos con faltantes importantes en el softwere .
Para diseñar utilizamos los programas Protel 99 y ISIS Proteus . El Protel 99 se uso para todo el diseño del PCB mientras que el ISIS Proteus para la simulacion .
Esquematico en ISIS Poteus
Esquematico en Protell 99
Imagenes del gabinete ensamblado y terminado.
A continución se puede ver una tabla de comparación entre el puente RLC y el capacímetro:
Videos del funcionamiento.
Archivos Adjuntos
porfavor sube el archivo del programa .hex
ResponderEliminarSI amigo sube el .hex se le agradece
ResponderEliminar