- Diseño del
termómetro digital - Características
relevantes - Material y equipo a
emplear - Desarrollo del termómetro
digital - Bibliografía
En el presente trabajo se explica el diseño
y desarrollo
para implementar un "termómetro digital" basado en el
microcontrolador PIC16F84, fabricado por Microchip, el cual se
programará en el lenguaje
ensamblador del microcontrolador para el funcionamiento del
proyecto.
La importancia de realizar un termómetro digital es debido a que es muy
fácil realizar medidas de la temperatura
con un sistema de
adquisición de datos, pero la
realización de medidas de temperatura
exactas y repetibles no es tan fácil.
La temperatura es un factor de medida engañoso
debido a su simplicidad. A menudo pensamos en ella como un simple
número, pero en realidad es una estructura
estadística cuya exactitud y repetitividad
pueden verse afectadas por la masa térmica, el tiempo de medida,
el ruido
eléctrico y los algoritmos de
medida.
La temperatura es difícil de medir con exactitud
aún en circunstancias óptimas, y en las condiciones
de prueba en entornos reales es aún más
difícil. Entendiendo las ventajas y los inconvenientes de
los diversos enfoques que existen para medir la temperatura,
resultará más fácil evitar los problemas y
obtener mejores resultados.
El termómetro digital será desarrollado de
acuerdo al siguiente diagrama a
bloques:
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
DESCRIPCIÓN:
El sensor que se utilizará será el
transistor
LM35DZ modelo TO-92,
el cual es un sensor de temperatura con buena precisión en
escala Celsius.
Éste dispositivo transforma la temperatura del ambiente en
voltaje, del orden de mV.
El LM35DZ entrega a la salida una resolución de
10mV por cada grado centígrado.
Empleándolo solo sin ninguna configuración
en especial, el dispositivo presenta un rango de medición de 2 a 150°C, como se muestra a
continuación:
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
Esta configuración es la idónea para el
proyecto pues
solamente la utilizaremos para medir temperaturas hasta
99°C.
Este sensor es fabricado por Fairchild y National
Semiconductor.
La etapa de conversión se llevará a cabo
mediante el convertidor analógico-digital (A / D) ADC0804,
el cual es un convertidor A / D de 8 bits con salida en paralelo,
debido a que es uno de los dispositivos más populares en
aplicaciones de sistemas,
además de estar bien documentado, pues existe gran
cantidad de información en libros y en
Internet para
poderlo emplear en aplicaciones con microprocesadores, microcontroladores y PLD’s.
Dicho convertidor utiliza el método de
aproximaciones sucesivas para la conversión, que se
describe brevemente a continuación:
Los convertidores de aproximaciones sucesivas contienen
un valor fijo en
su tiempo de
conversión que no depende del valor de la
entrada analógica, la disposición básica es
semejante a la de ADC de rampa digital, sin embargo, el
convertidor de aproximaciones sucesivas no utiliza ningún
contador para dar la entrada en el bloque del convertidor DAC,
pero en cambio usa un
registro con
lógica
de control que
modifica el contenido del registro bit a
bit hasta que los datos del
registro son el equivalente digital de la entrada
analógica.
El tiempo de conversión de los convertidores de
aproximaciones sucesivas de "n" bits requieren "n" ciclos de
reloj para realizar su conversión sin importar la magnitud
del voltaje que esta presente en su entrada, esto se debe a que
los circuitos de
control tienen
que ensayar un 1 lógico en cada posición del bit
para ver si se necesita o no, es por esto que los convertidores
de aproximaciones sucesivas tienen tiempos de conversión
muy rápidos, su uso en aplicaciones de sistemas con
adquisición de datos permitirán que se adquieran
mas valores de
datos en un intervalo de tiempo dado.
Esto puede ser muy importante cuando los datos
analógicos cambian su valor rápidamente.
Función de cada uno de los pines del
convertidor:
Pin | Nombre | Función | Lógica |
1 | CS- Chip Select | Habilita el chip | I / 0 |
2 | RD- Salida autorizada | Lee la información | I / 0 |
3 | WR- Start conversion | Iniciar conversión | I / 0 |
4 | CLKIN | Entrada de reloj |
|
5 | INTR | Indicador fin conversión | I / 0 |
6 | Vlts + | Señal positiva | -0,3/16V |
7 | Vlts – | Señal negativa | 0 |
8 | A GND | Tierra analógica | 0 |
9 | Vref/2 | 1/2 máximo del Pin 6 |
|
10 | D GND | Tierra digital |
|
11/18 | DB7 a DB0 | Salidas digitales | I / 0 |
19 | CLK R | Salidas reloj interno |
|
20 | Vcc | Alimentación | hasta 6,5V |
Este convertidor es fabricado por National
Semiconductor.
Este convertidor se empleará debido a que el
sensor LM35DZ nos entrega la temperatura como voltaje y como el
voltaje es una cantidad analógica, necesitamos convertirla
a su equivalente en valor digital para poderla manejar, pues
los valores
digitales son cantidades discretas y por lo tanto es más
fácil trabajar con ellas que con cantidades
analógicas.
El convertidor que utilizaremos presenta el siguiente
diagrama de
acuerdo a la colocación de sus pines descritos
anteriormente:
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
Sus características más importantes
son:
- Posee dos entradas analógicas: VIN
(+) y VIN (-), las cuales permiten tener entradas
diferenciales. Es decir, el voltaje real de entrada
VIN es la diferencia entre los voltajes aplicados en
dichas terminales. En mediciones hechas en un solo punto, la
entrada analógica se aplica en VIN(+)
mientras que VIN(-) se conecta a la tierra
analógica. Durante la operación normal, el
convertidor utiliza VCC = +5 V como voltaje de
referencia y la entrada analógica puede variar desde 0
hasta 5 V, que es el valor de escala
completa. - Convierte el voltaje analógico de entrada en
una salida digital de ocho bits. La salida es de tres estados,
lo que permite conectar al convertidor con facilidad en canales
de datos. Con ocho bits la resolución es de 5V / 255 =
19.6 mV. - Tiene un circuito de reloj interno que produce una
frecuencia igual con f=1/(1.1RC), donde R y C son los valores
de los componentes externos conectados al convertidor. Una
frecuencia típica de reloj es de 606 kHz y se obtiene
con R = 10kW y C = 150 pf. Si se
desea también se puede conectar un reloj externo;
éste se conecta a la terminal CLKIN del CI. - Al utilizar un frecuencia de 606 kHz, el tiempo de
conversión es, aproximadamente, igual a 100m s. - Tiene conexiones a tierra por
separado para los voltajes analógicos y digitales. La
terminal ocho corresponde a la tierra
analógica y se conecta al punto común como
referencia en el circuito analógico que genera el
voltaje analógico. La terminal diez es la tierra
digital, que es la que utilizan todos los dispositivos
digitales que integran al sistema.
La interpretación de los datos obtenidos del
convertidor A / D ADC0804 la realizará el microcontrolador
PIC16F84, fabricado por Microchip.
El PIC16F84 convertirá los valores del
ADC0804 en valores equivalentes para la
visualización.
Como éste dispositivo es el que
desarrollará el trabajo
más importante de nuestro proyecto, pues de nada sirve
tener el mejor sensor de temperatura ni el convertidor
analógico digital más exacto sino contamos con un
dispositivo que interprete los valores correctamente, se
describirá brevemente a continuación al
PIC16F84:
Para las aplicaciones más habituales (casi un
90%) la elección de una versión adecuada de PIC es
la mejor solución; sin embargo, dado su carácter
general, otras familias de microcontroladores son más eficaces en
aplicaciones específicas, especialmente si en ellas
predomina una característica concreta, que puede estar
muy desarrollada en otra familia.
Los detalles más importantes de la excelente
acogida que tienen los PIC son los siguientes:
- Sencillez de manejo: Tienen un juego de
instrucciones reducido; 35 en la gama media. - Buena información, fácil de conseguir y
económica. - Precio: Su coste es comparativamente inferior al de
sus competidores. - Poseen una elevada velocidad de
funcionamiento. Buen promedio de parámetros: velocidad,
consumo,
tamaño, alimentación,
código compacto, etc. - Herramientas de desarrollo
fáciles y baratas. - Existe una gran variedad de herramientas
hardware que
permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC. - Diseño rápido.
- La gran variedad de modelos de
PIC permite elegir el que mejor responde a los requerimientos
de la aplicación.
Una de las razones del éxito
de los PIC se basa en su utilización. Cuando se aprende a
manejar uno de ellos, conociendo su arquitectura y su
repertorio de instrucciones, es muy fácil emplear otro
modelo.
Descripción de las características
más representativas de los PIC:
Arquitectura.
La arquitectura del
procesador sigue
el modelo Harvard. En esta arquitectura, la CPU se conecta
de forma independiente y con buses distintos con la memoria de
instrucciones y con la de datos.
La arquitectura Harvard permite a la CPU acceder
simultáneamente a las dos memorias.
Además, propicia numerosas ventajas al funcionamiento del
sistema como se irán describiendo.
Segmentación.
Se aplica la técnica de segmentación ("pipe-line") en la
ejecución de las instrucciones.
La segmentación permite al procesador
realizar al mismo tiempo la ejecución de una
instrucción y la búsqueda del código
de la siguiente. De esta forma se puede ejecutar cada
instrucción en un ciclo (un ciclo de instrucción
equivale a cuatro ciclos de reloj).
Las instrucciones de salto ocupan dos ciclos al no
conocer la dirección de la siguiente
instrucción hasta que no se haya completado la de
bifurcación.
Formato de las instrucciones.
El formato de todas las instrucciones es de la misma
longitud
Todas las instrucciones de los microcontroladores de la
gama baja tienen una longitud de 12 bits. Las de la gama media
tienen 14 bits y más las de la gama alta. Esta
característica es muy ventajosa en la optimización
de la memoria de
instrucciones y facilita enormemente la construcción de ensambladores y compiladores.
Juego de instrucciones.
Procesador RISC (Computador de
Juego de
Instrucciones Reducido).
Los modelos de la
gama baja disponen de un repertorio de 33 instrucciones, 35 los
de la gama media y casi 60 los de la alta.
Todas las instrucciones son
ortogonales
Cualquier instrucción puede manejar cualquier
elemento de la arquitectura como fuente o como
destino.
Arquitectura basada en un "banco de registros"
Esto significa que todos los objetos del sistema
(puertas de E/S, temporizadores, posiciones de memoria, etc.)
están implementados físicamente como registros.
Diversidad de modelos de microcontroladores con
prestaciones y
recursos
diferentes
La gran variedad de modelos de microcontroladores PIC
permite que el usuario pueda seleccionar el más
conveniente para su proyecto.
Herramientas de soporte potentes y
económicas
La empresa Microchip
y otras que utilizan los PIC ponen a disposición de los
usuarios numerosas herramientas
para desarrollar hardware y software. Son muy abundantes
los programadores, los simuladores software, los emuladores en
tiempo real, Ensambladores, Compiladores C,
Intérpretes y Compiladores BASIC, etc.
La arquitectura Harvard y la técnica de
segmentación son los principales recursos en los
que se apoya el elevado rendimiento que caracteriza estos
dispositivos programables, mejorando dos características
esenciales:
- Velocidad de ejecución.
- Eficiencia en la compactación del
código.
Características del PIC16F84:
- Memoria RAM de
programa de
1K con palabra de 14 bits tipo Flash. - Memoria EEPROM de datos con 68 registros de
propósito general. - ALU de 8 bits.
- 2 puertos de comunicación puerto A de 5 bits y puerto
B de 8 bits. - Temporizador con preescaler.
- Stack de 8 niveles.
- Contador de programa de 13
bits.
Para la visualización de la temperatura se
empleará un display de cristal líquido (LCD) de 2
líneas por 16 caracteres (ks0066u), el cual será
conectado a la salida del puerto B del PIC16F84A para enviarle a
éste los datos a visualizar, siendo éstos los
equivalentes a números decimales de la palabra digital
obtenida del ADC y por el puerto A se enviarán las
señales para controlar el dispositivo.
Para ver el gráfico seleccione la
opción ¨Bajar trabajo¨ del menú
superior
- 1 PROTOBOARD
- PIC16F84A
- SENSOR LM35DZ
- ADC0804
- CRISTAL DE 4Mhz
- DISPLAY DE CRISTAL LÍQUIDO DE 2 X
16 - 2 CAPACITORES CERÁMICOS DE
27pf - CAPACITOR CERÁMICO DE 150pf
- 2 POTENCIÓMETROS DE PRESICIÓN DE
10KW - RESISTENCIA DE 10KW A
¼ DE WATT - FUENTE DE ALIMENTACIÓN DE
5V - CABLE TELEFÓNICO
- PINZAS DE PUNTA Y CORTE
- MULTIMETRO DIGITAL
- FUENTE DE ALIMENTACIÓN REGULADA DE
5V
DESARROLLO DEL
TERMÓMETRO DIGITAL
Inicialmente se tiene que considerar la manera como
funciona el sensor LM35, que como anteriormente se
mencionó, nos entrega a la salida 10mV por cada grado
centígrado.
Como la salida del sensor es en mV dicha salida se
convertirá en una cantidad digital para facilitar su
manejo. Para esto se empleará el ADC0804.
Para la conversión analógico –
digital el ADC0804 se manipulará de la siguiente
manera:
1.- Se habilita el CAD mediante un pulso bajo aplicado a
la terminal de CS, para que se inicie la
conversión.
2.- Se habilita la terminal (pulso bajo) denominada WR
para que inicie el proceso de
conversión, para esto se debe esperar 100m s aproximadamente para que se lleve a cabo la
conversión.
3.- Se habilita la terminal (pulso bajo) denominada RD
para que a la salida se tenga el resultado de la
conversión.
4.- Finalmente se deshabilita el convertidor.
Lo anterior se observa en el siguiente
diagrama:
El voltaje de referencia que se manejará en el
convertidor se calcula de la siguiente manera:
Como el LM35 nos entrega a la salida 10mV/°C y la
máxima temperatura que puede detectar es de 150 °C, se
tiene que 10mV x 150 = 1.5V, el cual es el máximo voltaje
que nos puede entregar, entonces, en base a este voltaje como es
el máximo será el voltaje de referencia.
Pero como el ADC maneja en su entrada VREF/2
el voltaje de referencia será de 0.75 V.
La corriente que se manejará en dicho voltaje de
referencia será de 1mA y el voltaje se obtendrá de
VCC= 5V mediante un divisor de
tensión:
La resistencia total
del divisor se calcula:
Rt = VCC /
Ideseada
Rt = 5V / 1mA = 2.5 kW
El factor que se manejará para poder calcular
R1 y R2 del divisor de tensión se calcula:
Vdeseado/ Vtotal =
0.75V / 5V = 0.15
Una vez obtenido el factor se procede a calcular el
valor de los resistores:
R1 = 0.15 * 2.5kW = 375W
R2 = 2.5kW –
375W = 2125W
Ahora se comprobará si los valores son
correctos:
Vref = (375W /375W
+2125W ) * 5V = 0.75
V
Que es el voltaje que se necesita para ajustar los pasos
del convertidor a escala completa.
En lo que respecta al PIC16F84A el programa, para leer
el CAD; interpretar el valor de la conversión y la
visualización de la misma, se desarrolló el
programa de conforme al siguiente diagrama de bloques:
Para ver el gráfico seleccione la
opción ¨Bajar trabajo¨ del menú
superior
Diagrama del termómetro:
Para ver el gráfico seleccione la
opción ¨Bajar trabajo¨ del menú
superior
- Microcontroladores PIC, Diseño práctico de
aplicaciones
José Ma. Ángulo Usategui, Ignacio
Ángulo Martínez
2da. edición
Editorial Mc Graw Hill
Págs. 29,30
1999
José Luis Rayon