Está en la página 1de 13

TERMMETRO DIGITAL

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

Technical Report COMP-016-2008

INTRODUCCIN

En el presente trabajo damos una descripcin general de un termmetro digital.

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

1. Descripcin General del Montaje

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+

Anlogo / Digital PIC LM35 10 k Com. serial

Figura 1. Diseo en bloques del montaje

2. Descripcin Detallada del Montaje

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

VDD MCLR RB7 RB6 RB5 RB4


4MHz

D7 D6 D5 D4 Vo

5 KOhm

OSC1 OSC2

20pF +5V LM 35 RA2 RB2 RB1 RBO Vss E RS RW

GND

MAX232 Conector DB9 Hembra

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.

3. Pasos que Seguimos en el Desarrollo del Proyecto

Para lograr la conversin A/D en la programacin realizamos los siguientes pasos:

1. Configuramos los pines del puerto A.

Los que se trabajaron como

entradas anlogas fueron configurados como entradas en el registro TRISA.

2. Configuramos las entradas anlogas y el voltaje de referencia (interno o externo) en el registro ADCON1.

3. Seleccionamos el canal de entrada en el registro ADCON0.

4. Seleccionamos el reloj de la conversin en ADCON0.

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.

7. Luego de iniciar el convertidor se hizo un pequeo retardo (para el muestreo).

8. Se inici la conversin mediante el bit GO/DONE del registro ADCON0.

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.

10. El resultado se puede leer en le registro ADRES.

11. Borramos el bit ADIF.

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.

Finalmente, la comunicacin serial se desarroll de la siguiente forma:

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.

4. Listado de Elementos que Utilizamos

LM35: Sensor de temperatura. Cristal de 4 MHz. Cable ribbon. Condensadores. Max 232: Comunicacin serial. PIC16C711.

5. Descripcin del Microcontrolador

Elegimos el PIC16C711 porque posee un convertidor anlogo a digital interno con las siguientes caractersticas:

Cuatro canales de entrada

Tiempo de conversin mnimo de 20 microsegundos

Voltaje de referencia interno o externo

Resolucin de 8 bits con precisin de -1 LSB, +1 LSB

Rango de entrada anloga desde Vss hasta Vref

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

completa es PIC16C711-04/P, para el dispositivo que utiliza reloj de 4MHz.

5. 2. Puertos del microcontrolador:

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

independiente, programando un par de registros diseados para tal fin. En

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 PIC16C711 admite diferentes tipos de reset:

Al encendido (Power On Reset)

Pulso en el pin MCLR durante la operacin normal

Pulso en el pin MCLR durante el modo de bajo consumo

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.

5. 6. Registros (Memoria RAM):

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

FLOYD, T. L., Fundamentos de Sistemas Digitales. Editorial Prentice Hall. 1997.

Curso Avanzado de Microcontroladores PIC. Editorial CEKIT.

Microchip. Eprint: http://www.microchip.com

National Semiconductor. Eprint: http://www.national.com/pf/LM/LM35.html

TOCCI, Ronald J., Sistemas Digitales: Principios y Aplicaciones. Editorial Prentice Hall. 1996.

13

También podría gustarte