Termómetro Digital

30

Transcript of Termómetro Digital

Page 1: Termómetro Digital
Page 2: Termómetro Digital

Agradecimiento

En primer lugar queremos agradecer a Dios por permitirnos estar cursando esta carrera ya muchas personas no tiene la oportunidad de hacerlo.

A nuestros padres y familiares quienes con su sacrificio no apoyan incondicionalmente con la finalidad de ver a sus hijos como profesionales útiles al país.

A nuestros compañeros por saber compartir los resultados excelentes que obtienen.

A nuestro profesor Ing. Félix Cedillo por los conocimientos que nos han impartido ya por un año, por su paciencia y comprensión, muchas gracias.

Page 3: Termómetro Digital

ReconocimientoEste trabajo fruto del diario convivir con los maestros y compañeros, reconocemos en

ellos su valiosísima aportación y colaboración para la realización del presente proyecto, ya que sin ellos no hubiese sido posible.

Page 4: Termómetro Digital

Contenidos

1. Introducción

2. Objetivo General

3. Objetivo Específico

4. Marco Teórico

5. Desarrollo

6. Diagramas y Esquemas

7. Conclusiones

8. Recomendaciones

9. Anexos

Page 5: Termómetro Digital

Introducción

El mundo que percibimos es “analógico”. Por “analógico” entendemos la serie de

cambios lineales que se manifiestan en el orden natural de las cosas, por ejemplo, la

temperatura de un líquido cambia gradualmente, el agua fluye suavemente, etc. Todas

las entradas sensoriales en un ser humano reciben datos en forma analógica. Cuando

las personas empezaron a diseñar máquinas "pensantes" rápidamente descubrieron

que los dispositivos que operan bajo principios analógicos eran complicados, sensibles

y poco confiables. El problema necesitaba simplificarse y se lo hizo permitiendo sólo

dos estados posibles.

Entonces: ¿Cómo puede una computadora, es decir un dispositivo binario interactuar

con el mundo real? En este proyecto, daremos solución a este problema.

Page 6: Termómetro Digital

Objetivo GeneralDiseñar un control de temperatura de líquidos implementado en PC con interfaz

gráfica de operación. El operador podrá, visualizar la variación de la temperatura en el

tiempo, además de saber el valor actual, valor máximo y mínimo alcanzado durante la

medición, también podrá observar mediante la simulación de un termómetro de

mercurio como este sube o baja según la temperatura.

Page 7: Termómetro Digital

Objetivos Específicos

Verificar que la temperatura obtenida con el circuito, sea aproximadamente

igual a la medida por un termómetro analógico.

Medir la variación de la temperatura de un líquido en función del tiempo.

Obtener la temperatura mínima y máxima alcanzada.

Satisfacer nuestras expectativas sobre el funcionamiento de un termómetro

digital.

Demostrar que nuestro termómetro digital es una mejor opción para medir la

temperatura en líquidos por su grado de exactitud.

Demostrar que al llevar un control computarizado es más factible que llevar un

control análogo, es decir mediante instrumentos analógicos.

Page 8: Termómetro Digital

Marco Teórico

Para la realización del termómetro digital se ha hecho un PC y Diversos materiales de

electrónica:

LISTA DE MATERIALES

1 ADC0804

1 Sensor de Temperatura LM35DZ

8 Resistencias de 150ohm a ¼ de vatio

1 Resistencia de 100Kohm

8 Diodos Led

1 Condensador de 150pF

1 Condensador de 1uF

1 Conector DB25 macho

Cable de RED

1 PROTOBOARD

1 Fuente Regulada de +5V

PC

Se cuenta con una PC con un microprocesador Pentium. Teniendo experiencia en programación en lenguaje C (usado en materias como Estructura de Datos I y II) optamos por realizar el desarrollo de la programación en Turbo C++ 3.0.

La PC cuenta con un puerto paralelo ON-BOARD. Dicho puerto puede ser usado en forma bidireccional. Configurando un registro en particular (registro de control del puerto) lo usaremos como entrada de medición.

Page 9: Termómetro Digital

Configuración de los puertos paralelos: Nos aseguramos de cual es la dirección del puerto LPT1.

Para esto vamos a Mi PC ->Propiedades -> Hardware -> Administrador de Dispositivos -> Puertos (COM y LPT) -> Recursos. Aquí se le asigna un bloque de direcciones al puerto 1. Escogimos para el puerto 1 el intervalo de direcciones de h378 – h37F.

Modo BidireccionalEl bit 5 del registro de CONTROL (C5) está disponible sólo si se trata de un puerto bidireccional. Si C5=”1”, el buffer de los datos de salida se pone en alta impedancia, “desconectando” dicho buffer de los pines 2 a 9 del conector del puerto (D0 a D7). Si se escribe al registro de datos, se escribe al buffer pero no a la salida. Esto permite que al leer el puerto, se lea el estado de las entradas y no lo que hay en el buffer.

Page 10: Termómetro Digital

Sensor de Temperatura

El sensor a usar será un LM35 de Nacional Semiconductors. La tensión de salida varía 10mV por cada ºC en forma lineal.

El rango de temperatura de funcionamiento óptimo es de 0 a 100ºC. Su funcionamiento se basa en la variación de la corriente que atraviesa una juntura PN a medida que varía la temperatura. La precisión es de 1ºC.

Protoboard

El protoboard es una tabla que permite interconectar componentes electrónicos sin necesidad de soldarlos. Así, se puede experimentar de manera fácil y ágil a través del rápido armado y desarmado de circuitos eléctricos. La lógica de operación del protoboard es muy sencilla, básicamente, ésta es una tabla con orificios los cuales están conectados entre si en un orden coherente. Un protoboard tiene el siguiente aspecto:

Protoboard

Si bien se muestra su aspecto en la práctica, el protoboard se puede ilustrar de la siguiente manera.

Page 11: Termómetro Digital

Esquema del protoboardAquí se muestra una tabla con múltiples orificios los cuales se pueden ordenar, al igual que una matriz, en filas y columnas. En particular el esquema muestra un protoboard de 28 filas y 16 columnas. Las columnas han sido concentradas en los grupos A, B, C y D.

Cada fila del grupo A representa un nodo, al igual que cada fila del grupo B, es decir, si se conecta el terminal de algún elemento electrónico en el orificio (1,3), éste estará conectado directamente con el terminal de otro elemento electrónico que se conecta en el orificio (1,4). Además, cada columna del grupo C representa un nodo, al igual que cada columna del grupo D. Los largos de las columnas de los grupos C y D están divididos en dos mitades, desde la fila 1 a la 13, y desde la fila 16 a la 28, esto permite tener un mayor número de nodos.

Integrando lo recientemente explicado, los distintos nodos quedan distribuidos dentro del protoboard de la siguiente manera:

Ilustración de nodos de un protoboard

Page 12: Termómetro Digital

Se puede apreciar que el grupo A tiene 28 nodos, al igual que el grupo B.

Además, los grupos C y D tienen 4 nodos cada uno. El total de nodos de esta protoboard en particular es de 64 nodos. Por convención y comodidad, los grupos A y B se ocupan para interconexión de componentes en general, mientras que los nodos de los grupos C y D se utilizan para la alimentación de la tabla.

Convertidor Analógico-Digital

Un convertidor análogo/digital es un circuito integrado que convierte señales análogas en datos binarios: 0s y 1s.

El convertidor análogo/digital ADC0804 es un circuito integrado capaz de convertir una muestra analógica entre 0v y 5v, en un valor binario de 8 dígitos binarios. Para saber la resolución del convertidor tenemos que saber el valor máximo que la entrada de información utiliza y la cantidad máxima de la salida en dígitos binarios. Como ejemplo vamos a hacer los cálculos para el ADC0804.

Vcc: voltaje positivo de alimentaciónAGND: tierra del sistema análogoDGND: tierra del sistema digitalVin(+): Terminal positiva del voltaje de entradaVin(-): Terminal negativa del voltaje de entradaDB7-DB0: salidas de la conversión digital, con DB7 el MSB y DB0 el LSBCLKin: entrada de relojCLKr: salida del reloj cuya frecuencia depende de una resistencia y un condensador externosCS: chip select, para que el ACD0804 funciones debe estar en lowRD: cuando este pin esta en low, las salidas tristate están activas y se puede leer el datoWR: cuando va a low, el proceso de conversión se iniciaINTR: genera una interrupción de nivel low cuando finaliza el proceso de conversiónVref/2: este pin debe ser alimentado con la mitad del rango de voltaje analógico máximo que va a recibir el ADC0804 por el pin Vin(+). Ejemplo: para un rango de entrada entre 0v y 2v el valor de Vref/2 será igual a: (2 )/2 o sea 1v

RESISTENCIA

Page 13: Termómetro Digital

Se denomina resistencia eléctrica, R, de una sustancia, a la oposición que encuentra la corriente eléctrica para recorrerla. Su valor viene dado en ohmios, se designa con la letra griega omega mayúscula (Ω), y se mide con el Óhmetro. También se define como la propiedad de un objeto o sustancia.

Esta definición es válida para la corriente continua y para la corriente alterna cuando se trate de elementos resistivos puros, esto es, sin componente inductiva ni capacitiva. De existir estos componentes reactivos, la oposición presentada a la circulación de corriente recibe el nombre de impedancia.

CONDENSADOR – CAPACITOR

Básicamente un condensador es un dispositivo capaz de almacenar energía en forma de campo eléctricoEs un dispositivo electrónico que está formado por dos placas metálicas separadas por un aislante llamado dieléctrico. Un dieléctrico o aislante es un material que evita el paso de la corriente. Es un dispositivo que almacena energía en la forma de un campo eléctrico (es evidente cuando el capacitor funciona con corriente directa) y se llama capacitancia o capacidad a la cantidad de cargas eléctricas que es capaz de almacenar

La capacidad depende de las características físicas de condensador como:

- Capacidad: se mide en Fararios(F), aunque esta unidad resulta tan grande que se suelen utilizar varios de los submúltiplos, tales como microfaradios(uF=10-10 F), nanofaradios (uF=10-9 F) y picofaradios (uF=10-12 F)

Page 14: Termómetro Digital

- Tensión de Trabajo: es la máxima tensión que puede aguantar un condensador, que depende del tipo y grosor del dieléctrico con que esté fabricado. Si se supera dicha tensión, el condensador puede perforarse y/o explotar. En este sentido hay que tener cuidado al elegir un condensador, de forma que nunca trabaje a una tensión superior a la máxima.-Tolerancia: igual que en las resistencias, se refiere al error máximo que puede existir entre la capacidad real del condensador y la capacidad indicada sobre su cuerpo.

Polaridad: los condensadores electrolíticos y en general los de capacidad superior a 1 uF tienen polaridad, eso es, que se les debe aplicar la tensión prestando atención a sus terminales positivo y negativo. Al contrario que los inferiores a 1uF, a los que se puede aplicar tensión en cualquier sentido, los que tienen polaridad pueden explotar en caso de ser está la incorrecta.

DIODO LED (Diodo Emisor de Luz)

Es un dispositivo semiconductor que emite luz poli-cromática, es decir, con diferentes longitudes de onda, cuando se polariza en directa y es atravesado por la corriente eléctrica.

El color depende del material semiconductor empleado en la construcción del diodo, pudiendo variar desde el ultravioleta, pasando por el espectro de luz visible, hasta el infrarrojo, recibiendo éstos últimos la denominación de diodos IRED (Infra-Red Emitting Diode).

El funcionamiento físico consiste en que, un electrón pasa de la banda de conducción a la de valencia, perdiendo energía. Esta energía se manifiesta en forma de un fotón desprendido, con una amplitud, una dirección y una fase aleatoria.

El dispositivo semiconductor está comúnmente encapsulado en una cubierta de plástico de mayor resistencia que las de vidrio que usualmente se emplean en las lámparas incandescentes. Aunque el plástico puede estar coloreado, es sólo por razones estéticas, ya que ello no influye en el color de la luz emitida. Usualmente un LED es una fuente de luz compuesta con diferentes partes, razón por la cual el patrón de intensidad de la luz emitida puede ser bastante complejo.

Page 15: Termómetro Digital

DesarrolloMontaje

Descripción

De una manera general, el sistema recibe información por la sonda de temperatura, dicha información es enviada al computador por el puerto paralelo, en donde es procesada y se toma una decisión sobre el nivel de temperatura, enviando una alerta si así lo amerita.

El circuito nos permite tomar la temperatura (señal analógica) que genera el sensor (lm35), el cual varia su voltaje a razón de 10mv/ºc, se debe tomar en cuenta que el circuito solo podrá medir temperaturas comprendidas entre 0º y 100º.

Por medio del circuito integrado ADC0804 (convertidor análogo digital) transforma dicha señal en una digital

de 8 bits que se ingresa al computador mediante el puerto paralelo.

La técnica de conversión por aproximaciones sucesivas es utilizada por el CI ADC0804. Optamos por este CI debido a su bajo costo y suficiente precisión (8 bits) Usamos el convertidor en modo “free-running” (pata INTR y WR interconectadas). En este modo el dispositivo está convirtiendo permanentemente. Luego conectamos la señal binaria a la PC a través del puerto paralelo. Debido a que el convertidor análogo digital tiene una alta impedancia de entrada y nos permite ajustar la resolución, es posible conectar nuestro sensor directamente al convertidor.

Page 16: Termómetro Digital

Calibración de la etapa de medición

Para tener la mayor flexibilidad posible ha sido diseñado para trabajar con voltajes de referencia de 5V, 2,5V o un voltaje externo de referencia.

Notar que este voltaje puede ser la mitad de la tensión aplicada como Vcc o puede ser externamente forzado a través del pin Vref/2. Esto aumenta la flexibilidad del dispositivo. Por ejemplo, podría usarse esta opción si la tensión a convertir es reducida.

Ej: Si la tensión a convertir va desde 0.5 a 3.5V, en vez de 0 a 5V el span debería ser 3V. Con 0,5V aplicado al pin de corrección de offset (Vin -). De esta forma la tensión de referencia debería ser 3V/2=1.5V. El convertidor ahora codificará una señal de forma que la salida será mínima (“00000000”) para 0,5V de entrada y máxima (“11111111”) para 3,5V de entrada.

Explicación general del programa

En el comienzo del programa se definen las variables a utilizar.

Posteriormente se utiliza manda 0 a las salidas y se coloca el puerto en bidireccional enviando una señal poniendo a 1 el bit número 5 del puerto.

Mas adelante inicializamos el modo gráfico, que utilizaremos para mostrar el comportamiento de la temperatura en función del tiempo, pudiendo visualizarlo mediante un gráfico.

Para graficar la temperatura es necesario escalar los valores leídos por el puerto a las dimensiones de la pantalla. También se grafican tanto los ejes como la escala de temperatura y se realiza un barrido de la pantalla cada Ts segundos, donde Ts es el tiempo de muestreo (realizado mediante un delay).

Page 17: Termómetro Digital

También se registra la temperatura máxima y mínima medida, mostrándolas en pantalla, se muestra también un termómetro que sube o baja de nivel de acuerdo a la temperatura medida, queriendo así imitar a uno analógico; además se visualiza la temperatura porcentual, es decir que porcentaje del total se ha alcanzado mediante un sector circular, que también varia de acuerdo a la temperatura que se haya medido.

Por ultimo, se visualiza en pantalla, el valor actual de temperatura, para poder realizar esto fue necesario realizar una conversión de entero a cadena de caracteres para poder mostrarlo.

Page 18: Termómetro Digital

Diagramas y Esquemas

Diagrama Circuital

Page 19: Termómetro Digital

Conclusiones

Podemos manifestar que el circuito elaborado nos permitió que obtengamos mayor

conocimiento en la parte práctica y experiencias que nos favorecen a nosotras las

estudiantes que llevamos a cabo este proyecto con entusiasmos, y que además nos

servirá de mucho en el futuro.

Page 20: Termómetro Digital

Recomendaciones

Consultar sobre el funcionamiento del ADC 0804 y colocarlo bien en el protoboard,

pues si no se lo haría no funcionaria el circuito a desarrollarse.

Saber identificar que para medir líquidos ya sean combustibles o no, no se deben

utilizar fototransistores, termocuplas, ni termopar.

Verificar que el puerto paralelo este en bidireccional, es decir para enviar y recibir

datos ya que si no fuera así al momento de enviar señales podríamos quemarlo.

Page 21: Termómetro Digital

AnexosCódigo fuente del Programa empleado:

#include<stdio.h>#include<conio.h>#include<dos.h>#include<stdlib.h>#include<string.h>#include<graphics.h>

void inicializar(){ int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,"c:\\tc\\bgi");}

void dibujar_ejes(){ setcolor(GREEN); setlinestyle(0,0,3); line(100,5,100,110); line(90,100,600,100); setlinestyle(1,1,0); for(int i=100;i<600;i+=15) line(i,10,i,105); for(i=15;i<=95;i+=15) line(95,i,600,i); setcolor(YELLOW); settextstyle(2,0,4); outtextxy(320,105,"TIEMPO"); settextstyle(2,1,4); outtextxy(75,15,"TEMPERATURA");

}

void graficar(){ int i=100,xant=100,yant=100,temp=0,vmax=0,vmin=0; float angm=0,y=0; setfillstyle(1,BLUE); bar(70,2,610,120); bar(2,2,40,360); bar(70,140,610,360); bar(70,380,610,460);

Page 22: Termómetro Digital

setcolor(9); rectangle(70,2,610,120); rectangle(2,2,40,360); rectangle(70,140,610,360); rectangle(70,380,610,460); setlinestyle(0,0,3); line(70,180,610,180); line(70,230,610,230); line(340,180,340,230); dibujar_ejes(); y=inportb(0x378); vmin=y; do { y=inportb(0x378); if(vmax<y) vmax=y; if(vmin>y) vmin=y; temp=y; angm=1.8*y; setcolor(9); setlinestyle(0,0,0); sector(320,350,180,0,100,100); setfillstyle(1,YELLOW); sector(320,350,180,180-angm,100,100); settextstyle(0,0,1); setcolor(YELLOW); outtextxy(200,350,"0§"); outtextxy(420,350,"100§"); settextstyle(0,0,2); outtextxy(200,150,"Temperatura: §C"); outtextxy(400,150,itoa(y,'\0',10)); outtextxy(100,200,"M¡nima: §C"); outtextxy(220,200,itoa(vmin,'\0',10)); outtextxy(350,200,"M xima: §C"); outtextxy(470,200,itoa(vmax,'\0',10)); setlinestyle(0,0,0); setfillstyle(1,BLACK); bar(16,30,24,330); setfillstyle(1,RED); setcolor(WHITE); rectangle(15,29,25,330); fillellipse(20,330,10,10); bar(16,330-(y*3),24,330); setlinestyle(0,0,3); setcolor(YELLOW);

Page 23: Termómetro Digital

line(xant,yant,i,100-y); setlinestyle(0,0,0); putpixel(i,100-y,RED); setlinestyle(0,0,3); if(temp<=19&&temp>10) { settextstyle(2,0,5); setcolor(BLUE); sound(1000); line(xant,yant,i,100-y); outtextxy(200,400,"TEMPERATURA BAJA"); delay(100); nosound(); setcolor(1); outtextxy(200,400,"TEMPERATURA BAJA"); } else { if(temp<10) {

settextstyle(0,0,2);setcolor(BLUE+8);sound(1000);line(xant,yant,i,100-y);outtextxy(140,400,"TEMPERATURA DEMASIADO BAJA");delay(100);setcolor(1);outtextxy(140,400,"TEMPERATURA DEMASIADO BAJA");nosound();

} else {

if(temp>=40&&temp<=60){ settextstyle(0,0,2); setcolor(BROWN); sound(1000); line(xant,yant,i,100-y); outtextxy(200,400,"TEMPERATURA ALTA"); delay(100); setcolor(1); outtextxy(200,400,"TEMPERATURA ALTA"); nosound();}else{ if(temp>60)

Page 24: Termómetro Digital

{ settextstyle(0,0,2); setcolor(RED); sound(1000); line(xant,yant,i,100-y); outtextxy(140,400,"TEMPERATURA DEMASIADO ALTA"); delay(100); setcolor(1); outtextxy(140,400,"TEMPERATURA DEMASIADO ALTA"); nosound(); }}

} } setcolor(WHITE); yant=100-y; xant=i; delay(1000); i+=10; setfillstyle(1,1); bar(80,150,605,350); setcolor(9); setlinestyle(0,0,3); line(70,180,610,180); line(70,230,610,230); line(340,180,340,230); setlinestyle(0,0,0); if(i>=600) { delay(250); i=100; xant=100; cleardevice(); setbkcolor(LIGHTGRAY); setfillstyle(1,BLUE); bar(70,2,610,120); bar(2,2,40,360); bar(70,140,610,360); bar(70,380,610,460); setcolor(9); rectangle(70,2,610,120); rectangle(2,2,40,360); rectangle(70,140,610,360); rectangle(70,380,610,460); dibujar_ejes(); } nosound();

Page 25: Termómetro Digital

}while(!kbhit()); getch();}

void main(){ int res=0; outportb(0x378,0); res=inportb(0x37A); res=res|0x20; outportb(0x37A,res); inicializar(); cleardevice(); setbkcolor(LIGHTGRAY); graficar(); closegraph();}