martes, 29 de noviembre de 2011

Proyeto Final "Capacimetro Digital"

Este es el momento donde dibulgaremos  nuestro ultimo proyecto anual ; el cual es un "Capacimetro Digital" .
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 ) .
 
Programando correctamente este micro fuimos capaces de manejar todos lo perifericos que necesitamos usar. Pero antes de llegar a eso pasamos por pasos como : leer las hojas de datos del PIC , ayudandonos a entender su funcioneamiento desde el punto de vista Hardwere ; hacer pruebas con programas mas sencillos , llevandonos a adquirir mas experiencia a la hora de llegar al programa final .
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 


A continuacion se ven imagenes del diseño del PCB



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