Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GERMN HARVEY ALFREZ SALINAS Facultad de Ingeniera y Tecnologa, Universidad de Montemorelos, Mxico harveyalferez@um.edu.mx EDWARD MAURICIO ALFREZ SALINAS Research Center for Informatics and Information Technologies, New University of Lisbon, Portugal mauricio.alferez@di.fct.unl.pt
INTRODUCCIN
El proyecto fue realizado mediante la utilizacin de herramientas tales como el microcontrolador PIC16C71, el sensor de temperatura LM35, el MAX 232 y el Borland C++ 3.0 entre otras.
En la descripcin general del montaje se explica la funcionalidad del sistema que se desarroll.
TERMMETRO DIGITAL
En esta aplicacin utilizamos el convertidor A/D del PIC16C71 para mostrar en el monitor del computador, mediante comunicacin serial, la temperatura medida por el sensor LM35. Finalmente, se realiza el clculo de la mayor y menor temperatura que fue enviada al computador. El diseo en bloques del montaje se presenta en la figura 1.
V+
V+
El sensor LM35 tiene tres pines: alimentacin, tierra y la salida anloga. Este dispositivo presenta en su salida una variacin de 10mV/ por lo tanto, el C, valor de la temperatura se puede obtener directamente, sin necesidad de hacer modificaciones al dato obtenido.
El LM35 puede trabajar en un rango de temperatura entre -55 y 150 la C, fuente de alimentacin positiva puede estar entre 4 y 30 Voltios. Adems, su precisin es de 0.5 Este elemento viene en un encapsulado plstico TOC. 92 y tiene la apariencia de un transistor.
En el programa del PIC anexamos la funcionalidad de que el dato de la temperatura fuera pasado a un mdulo LCD (mediante interface de 4 bits) pero por falta de dinero no nos fue posible conseguirlo para la entrega final. No obstante, el proyecto cumple con lo especificado en el anteproyecto: presentacin de la temperatura mediante comunicacin serial.
En el presente proyecto, conectamos la entrada anloga al pin RA2/AN2 del microcontrolador y el voltaje de referencia del convertidor anlogo a digital, se configura para que sea el voltaje de alimentacin del PIC (VDD). En la figura 2 se muestra el diagrama esquemtico del termmetro digital.
PIC16C711
+5v
Mdulo LCD
+5v
20pF
D7 D6 D5 D4 Vo
5 KOhm
OSC1 OSC2
GND
T20UT
T2IN
Conectar al computador
Figura 2. Diagrama esquemtico del termmetro digital con PIC (suprimimos conexiones realizadas en el conector DB9 y en el MAX232 por falta de espacio)
La mxima lectura del convertidor anlogo a digital (0FFH) se obtiene cuando la entrada anloga sea superior a 5 voltios. De tal manera, que si
hacemos la divisin de 5 voltios entre 255 (FFH), obtenemos una relacin de aproximadamente 20 mV por unidad. Por ejemplo, si la entrada anloga est en 160 mV (es decir 16 C), el valor digital que entrega el convertidor es 8 (160/2). Dado lo anterior, el valor que entrega el convertidor se debe duplicar para compensar la diferencia (variacin de 10 mV/ y resolucin de lectura C de 20 mV), haciendo que la lectura siempre sea un nmero par.
Para solucionar el problema de tener que duplicar el valor ledo y garantizar que el resultado de la conversin corresponda a la temperatura real, multiplicamos 2 al valor que entrega el PIC en la aplicacin desarrollada en Borland C++ 3.0.
2. Configuramos las entradas anlogas y el voltaje de referencia (interno o externo) en el registro ADCON1.
5. Encendimos el convertidor (bit ADON del registro ADCON0) para que se tome la muestra de la seal anloga.
6. Si se va a utilizar la interrupcin se debe borrar el bit ADIF del registro ADCON0 y poner en "1" el bit ADIE y el bit GIE del registro INTCON.
9. Esperamos a que se terminara la conversin probando el estado del bit GO/DONE o esperamos el cambio en la bandera de interrupcin, es decir probando el bit ADIF del registro ADCON0.
Para el caso del termmetro digital los pasos seguidos fueron los siguientes:
En el primer bloque del programa principal (INICIO), adems de configurar los puertos, se programa el pin RA2/AN2 como una entrada anloga. El bloque que inicia con la etiqueta BEGIN se encarga de ubicar en la pantalla el mensaje del medidor de temperatura, utilizando la interface a 4 bits.
La parte del programa que inicia con la etiqueta MIDE se encarga de configurar la velocidad del convertidor anlogo a digital, de poner el bit ADIF en "0" y de poner el bit ADON del registro ADCON0 en "1" antes de empezar la conversin, luego se hace un retardo. El trabajo del
convertidor se inicia cuando el bit ADCON0, GO se pone en "1", nuevamente se hace un pequeo retardo. Para saber si el convertidor ha terminado se prueba el estado del bit llamado ADCON0, ADIF.
Una vez que se est seguro de tener el dato digital que resulta de la conversin, este se puede leer del registro AADRES y se debe duplicar antes de enviarlo a la pantalla. Como este nmero se encuentra en
hexadecimal, se debe utilizar una rutina que se encargue de convertirlo a su equivalente en decimal. Esto se hace con la rutina llamada DECIMAL, la cual devuelve el valor obtenido en los registros CENTENA, DECENA y UNIDAD. A estos datos se les suma el valor 30h para convertirlos en su equivalente ASCII antes de enviarlos a la pantalla.
Para enviar los datos serialmente utilizamos como interface un integrado MAX232 (por falta de dinero fue provisto por la universidad).
La comunicacin se realiz a 1200 bps, 8 bits, sin paridad y con un stop bit (1200, 8, N, 1). Los bloques ms importantes son: el que hace la conversin anlogo a digital, que inicia con la etiqueta MIDE y el que hace la transmisin serial que lo compone la subrutina llamada ENVIAR.
La computadora se debe encargar de leer el dato serial y de mostrarlo en la pantalla, mediante una aplicacin realizada en Borland C++ 3.0.
LM35: Sensor de temperatura. Cristal de 4 MHz. Cable ribbon. Condensadores. Max 232: Comunicacin serial. PIC16C711.
Elegimos el PIC16C711 porque posee un convertidor anlogo a digital interno con las siguientes caractersticas:
5. 1. Pines y funciones:
El PIC16C711 es un microcontrolador de Microchip Technology fabricado en tecnologa CMOS, su consumo de potencia es muy bajo y adems es completamente esttico (esto quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden).
El encapsulado ms comn para el microcontrolador es el DIP (Dual In-line Pin) de 18 pines, propio para usarlo en experimentacin. La referencia
El PIC16C711 tiene dos puertos. El puerto A con 5 lneas y el puerto B con 8 lneas. Cada pin se puede configurar como entrada o como salida
10
ese registro un "0" configura el pin del puerto correspondiente como salida y un "1" lo configura como entrada.
5. 3. El oscilador externo:
El PIC16C711 puede utilizar cuatro tipos de reloj diferentes. Estos tipos son RC, XT, HS y LP.
5. 4. Reset:
El rebase del conteo del circuito de vigilancia (watchdog) durante la operacin normal
11
El rebase del conteo del circuito de vigilancia (watchdog) durante el modo de bajo consumo (sleep)
5. 5. Memoria de programa:
Es una memoria de 1 Kbyte de longitud con palabras de 14 bits. En ella se graba, o almacena, el programa o cdigos que el microcontrolador debe ejecutar. Dado que el PIC16C711 tiene un contador de programa de 13 bits, tiene una capacidad de direccionamiento de 8K x 14, pero solamente tiene implementado el primer 1K.
El PIC16C711 puede direccionar 128 posiciones de memoria RAM, pero solo tiene implementadas fsicamente las primeras 48 (0-2F en hexadecimal). De estas, las primeras 12 son registros que cumplen un propsito especial en el control del microcontrolador y las 36 siguientes son registros de uso general que se pueden usar para guardar los datos temporales de ta tarea que se est ejecutando.
12
BIBLIOGRAFA
TOCCI, Ronald J., Sistemas Digitales: Principios y Aplicaciones. Editorial Prentice Hall. 1996.
13