proyecto: sensor de temperatura

17
UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS ESCUELA DE INFORMÁTICA MEDIDOR DE TEMPERATURA Integrantes: López Egusquiza, Charl Pastor Cruzado, Eduardo Sánchez Siccha, Celeny Tung, Meihsiu Valdivieso Castillo, Claudia

Upload: claudia-valdivieso-castillo

Post on 04-Jul-2015

10.665 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Proyecto: Sensor de Temperatura

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

ESCUELA DE INFORMÁTICA

MEDIDOR DE

TEMPERATURA

Integrantes:

López Egusquiza, Charl

Pastor Cruzado, Eduardo

Sánchez Siccha, Celeny

Tung, Meihsiu

Valdivieso Castillo, Claudia

Page 2: Proyecto: Sensor de Temperatura

ÍNDICE

INTRODUCCIÓN ....................................................................................................... 3

DESCRIPCIÓN DE MATERIALES .............................................................................. 4

COSTOS .................................................................................................................. 11

ESQUEMA CIRCUITAL............................................................................................ 12

FUNCIONAMIENTO DEL CIRCUITO....................................................................... 13

PROGRAMA ........................................................................................................... 136

CONCLUSIÓN ........................................................................................................ 167

Page 3: Proyecto: Sensor de Temperatura

INTRODUCCIÓN

La implementación de equipos digitales para controlar y sensar fenómenos

físicos es cada vez mayor y mucho más eficiente.

El desarrollo de estos equipos permite a la humanidad la investigación, el

avance industrial y pronosticar los fenómenos de la naturaleza.

Gracias a la baja complejidad de algunos de los circuitos, hemos logrado

desarrollar un prototipo medidor de temperatura capaz de sensar el nivel de

calor de ambientes controlados. Es importante destacar que en la actualidad este

circuito es básico en comparación con la tecnología moderna. Este proyecto tiene

como fundamento experimentar con el manejo de circuitos digitales y como

convertir la información analógica en un tipo de dato digital que el ordenador sea

capaz de procesar.

Además se ha implementado un programa capaz de abstraer los datos y

mostrarlos en pantalla como información entendible por el hombre. A través de

este circuito tomamos como objetivo analizar la transformación de la

información analógica a información digital, la cual facilita su utilización (a través

del ADC), que es el principio.

Page 4: Proyecto: Sensor de Temperatura

DESCRIPCIÓN DE MATERIALES

Multiplexor 74LS157

Un multiplexor es un circuito lógico combinacional que de ciertas entradas

de datos digitales, selecciona una para pasarla a la salida del circuito. Para

controlar qué datos van a pasar o cuales no, se dispone de una entrada

adicional llamada selector.

Lo que realiza este selector es controlar el enrutamiento de datos en un

determinado tiempo.

La figura 1 muestra el funcionamiento de un multiplexor.

Figura 1. Multiplexor.

El multiplexor utilizado en el proyecto es el modelo 74LS157 y es un

multiplexor cuádruple de dos entradas; es decir, contiene cuatro multiplexores

básicos de dos entradas que funcionan en paralelo dentro del CI. Esto permite

que las entradas pasen en grupos de 4 bits según la señal del selector.

Figura 2. Diagrama de bloque del MUX 74LS157

La entrada es un indicador de habilitación del CI activa en bajo; es decir

que enviando un 0 el CI se habilita, pero con un 1, las salidas de Z siempre son

cero.

Este bit no depende de S por lo que se inhabilita el CI sin importar su valor.

Page 5: Proyecto: Sensor de Temperatura

La entrada S es el bit selector que permite el paso de los bits A o los bits B

según su estado. Cuando está en 0 permite el paso de A y cuando está en 1

permite el paso de B. La tabla de verdad demuestra lo descrito:

S

1 x 0 0 0 0

0 1

0 0

Tabla 1. Tabla de Verdad de 74LS157.

ADC0804

Un convertidor analógico a digital es un circuito electrónico que realiza la

operación de convertir un valor analógico (voltaje continuo) a uno digital

(representado en binario pro 0’s y 1’s). Esta operación se realiza después de

cierto tiempo que la entrada analógica se ha recibido ya que la conversión es

muy compleja a realizar.

En el proyecto, por ejemplo, el voltaje de salida del sensor de temperatura

está en el orden de los 10mV por 1°C. Si tenemos una lectura de temperatura

entre los 800 y 1500mV, el ADC podría convertir esos valores analógicos en

valores binarios que varíen desde 01010000(80) hasta 10010110(150).

Ya que el proceso de conversión de un ADC es muy complejo se han

diseñado varios métodos para convertir un valor analógico a digital; sin

embargo, todos los ADC’s siguen el diseño del diagrama de bloque de la figura

3.

Figura 3. Diagrama de bloque de un ADC

Page 6: Proyecto: Sensor de Temperatura

El diagrama anterior muestra la composición general de todo ADC. Véase

que dentro del circuito se encuentra un convertidor digital a analógico (DAC)

que servirá como entrada al comparador.

La unidad de control mediante la señal de inicio comienza el proceso de

conversión.

El proceso en sí consiste en modificar en forma continua el número binario

que se almacena en el registro a una velocidad determinada por el reloj. El

DAC interno convierte el número binario del registro en el voltaje analógico

VAX, y el comparador lo compara con la entrada analógica real VA. Si VAX < VA

entonces la salida del comparador permanecerá en 1 indicando que aún no se

ha alcanzado un valor aproximado a VA y que el proceso de conversión debe

continuar. Cuando VAX exceda a VA en un valor predefinido como voltaje de

umbral (VT), la salida del comparador cambiará a 0 indicando que se ha hecho

una buena aproximación a VA y que el proceso de conversión debe detenerse.

Por tanto, el último valor que salió del registro como VA será el valor fianl de

conversión.

El modelo de ADC utilizado en el proyecto es un ADC de aproximaciones

sucesivas de modelo ADC0804. A diferencia de otros ADC’s, el de

aproximaciones sucesivas tiene un tiempo corto de conversión que también es

fijo e independiente de la entrada analógica que se esté manejando.

El diagrama de bloques del ADC de aproximaciones sucesivas es bastante

similar al de los ADC’s generales (ver figura 3) ya que utiliza un registro para

acceder al DAC ( a diferencia del de rampa digital que utiliza un contador).

La unidad de control modifica el contenido del registro bit a bit hasta que

los datos del registro sean equivalentes al valor analógico real de entrada VA.

El comparador realiza las comparaciones a vistas para la conversión de

acuerdo a su valor de salida.

Figura 4. ADC0804.

Page 7: Proyecto: Sensor de Temperatura

De la figura 6 podemos describir las características más importantes de

este CI:

VIN: Correspondiente a los pines 6 y 7 (positivo y negativo) que permiten

una entrada diferencial; es decir que el voltaje de entrada analógico real

se calcula como VIN(+) – VIN(-).

Como sólo contamos con una entrada analógica del sensor, el pin 7

se conecta a tierra.

El CI cuenta con conectores a tierra separados para voltajes

analógicos y voltajes digitales.

Aunque no es necesario utilizar una tierra analógica separada de la

digital, si lo hacemos nos aseguramos de evitar el ruido que la tierra

digital provoca debido a los cambios instantáneos de voltaje digital.

Vref/2: El voltaje de referencia se utiliza para cambiar la resolución del

convertidor. Nos referimos a resolución cuando especificamos un voltaje

límite de cambio entre salidas.

Por ejemplo, si la resolución es de 10mV, la salida digital

cambiará en 1 unidad cada 10mV.

Para calcular el voltaje de referencia según una resolución

deseada, multiplicamos la resolución por 256 (256 x 10mV = 2.56V). Sin

embarga, la entrada al pin 9 es la mitad de este valor; es decir 1.28V.

: Esta es la entrada de selección del chip; es decir, aquella que habilita

las conversiones y por ende el funcionamiento total del CI. Esta entrada

debe estar siempre en 0 para que el CI funcione.

: Entrada de lectura que habilita los bufferes de salida digital. El valor

de esta entrada debe estar en 0 para que se puedan leer los valores

digitales a todo momento por la PC.

: Entrada de inicio de conversión. Un valor cero aplicado a esta

entrada supone el comienzo del proceso de conversión del CI.

: Salida de fin de conversión. Esta salida cambiará a 1 cuando

comience una conversión y a 0 cuando finalice.

Page 8: Proyecto: Sensor de Temperatura

DAC0800

Un convertidor digital analógico es un dispositivo que recibe una

información digital en forma de una palabra de n bits, y la transforma en una

señal analógica. La transformación se realiza mediante una correspondencia

entre 2n combinaciones binarias posibles en la entrada y 2n tensiones (o

corrientes) discretas obtenidas a partir de una tensión de referencia (VREF). La

señal analógica así obtenida no es una señal continua, sino que se obtiene un

número discreto de escalones como consecuencia de la discretización de la

entrada.

Al pasar de una configuración digital a la siguiente, la salida analógica se

incrementa en un valor “q”, conocido como intervalo de cuantificación, es decir,

que a la variación de 1 LSB (bit menos significativo) le corresponde la mínima

variación analógica “q”. La función de transferencia de un DAC en general está

dada por:

Salida analógica = q . (Valor decimal de la palabra digital de entrada)

Existe varios tipos distintos de DAC’s, pudiéndose hacer una clasificación

inicial en la que se tenga en cuenta, por ejemplo, la forma de aplicar la

información digital a la entrada:

DAC en serie: Son aquellos en los que la información digital a convertir

es ingresada por una sola entrada, es decir, la información se transfiere

bit a bit. Estos dispositivos presentan una baja precisión y resolución,

motivo por el cual prácticamente han dejado de ser utilizados.

DAC en paralelo: La información digital de entrada se ingresa por

palabra o conjunto de n bits. Éstos poseen mayor velocidad de

conversión y mayor resolución que los DAC en serie.

En particular, en este proyecto se utilizara el DAC0800 que es un

convertidor digital analógico en paralelo de 8 bits.

ENTRADAS DIGITALES

Pines 12 11 10 9 8 7 6 5

Bits D8 D7 D6 D5 D4 D3 D2 D1

LSB MSB

Page 9: Proyecto: Sensor de Temperatura

LM35

El sensor de temperatura a usar en el proyecto es el modelo LM35. Este

sensor de temperatura trabaja variando el voltaje de acuerdo a la temperatura

y es casi linealmente proporcional a la escala Celsius ya que proporciona una

salida de voltaje en el orden de los 10mV por 1°C.

El rango de temperatura en la que el sensor puede funcionar normalmente

es de -55 a 150°C.

También cuenta con poco calentamiento interno (menos de 0.1°C) y acepta

voltajes de alimentación desde 4 hasta 30V.

El diagrama de bloque y de conexión (3 pines) se muestra en la figura 6.

Figura 6. LM35.

Puerto Paralelo

El puerto paralelo o puerto de impresora es la pieza de hardware de la PC

más simple que existe para la comunicación con el mundo exterior. Es un

dispositivo de E/S con un conector DB25 de 25 pines y una dirección de E/S

que varía de 0 x 378 a 0 x 37F.

Su principal característica es que realiza la lectura y/o escritura de bits en

paralelo; es decir, varios al mismo tiempo, un bit por cada pin. Para esto, se

utilizan tres registros de 8 bits que se representan por una combinación única

de pines y una dirección de E/S determinada. A continuación describiremos

los que se utilizaron en el proyecto.

Registro de Datos:

El registro de datos se utiliza para la escritura de bits al mundo exterior.

Los pines: +VS: Conexión a voltaje VOUT: Salida analógica GND: Conexión a tierra

Page 10: Proyecto: Sensor de Temperatura

Utiliza los pines 2 al 9 del conector DB25 y puede enviar datos de hasta 8

bits. La figura muestra la configuración de pines y los bits del registro.

REGISTRO DE DATOS

Pines 2 3 4 5 6 7 8 9

Bits D0 D1 D2 D3 D4 D5 D6 D7

LSB MSB

La dirección de E/S de este registro corresponde a 0 x 378.

Registro de Estado:

El registro de estado es de sólo lectura, es decir, que ignora las salidas

que se le den, sólo acepta los bits que ingresen del exterior al puerto. La

configuración de pines y bits del registro es la siguiente.

REGISTRO DE ESTADO

Pines 11 10 12 13 15

Bits S6 S5 S4 S3

MSB LSB

Nótese que la entrada está negada, lo cual significa que inverte

cualquier valor que se ingrese.

La dirección de E/S de este registro corresponde a 0 x 379.

Los pines que no corresponden a ningún registro van conectados a tierra

y son del 18 al 25.

Page 11: Proyecto: Sensor de Temperatura

COSTOS

CANT. MATERIAL PRECIO

UNITARIO

PRECIO

TOTAL

1 Multiplexor 74LS157 S/. 1.50 S/. 1.50

2 Resistencia de 10K S/. 0.10 S/. 0.10

4 Resistencia de 4.7K S/. 0.10 S/. 0.40

1 Resistencia de 1K S/. 0.10 S/. 0.10

1 Condensador cerámico 150 pF S/. 0.20 S/. 0.20

1 Baquelita de 15 cm2 S/. 6.80 S/. 6.80

1 Baquelita de 10 cm2 S/. 3.50 S/. 3.50

1 Potenciómetro 250K S/. 1.00 S/. 1.00

1 Potenciómetro 10K S/. 0.50 S/. 0.50

5 Bases S/. 0.50 S/. 2.50

4 Estaño S/. 0.80 S/. 3.20

4 Botella de Ácido S/. 1.00 S/. 4.00

8 Led S/. 0.10 S/. 0.80

1 Conector DB25 hembra S/. 2.50 S/. 2.50

1 Plumón Indeleble S/. 2.50 S/. 2.50

1 Convertidor Digital-Analógico S/. 6.50 S/. 6.50

1 Amplificador Operacional LM741 S/. 1.00 S/. 1.00

3 Resistencia 5K S/. 0.10 S/. 0.30

3 Condensador 1 pF S/. 0.20 S/. 0.60

2 Condensador 0.1 µF S/. 0.20 S/. 0.40

1 Condensador 10 nF S/. 0.20 S/. 0.20

5 Borneras x 2 S/. 0.50 S/. 2.50

1 Diodo Zener S/. 0.50 S/. 0.50

8 Tarugos S/. 0.80 S/. 0.80

16 Tornillos para Tarugos S/. 1.20 S/. 1.20

1 Pulsador S/. 0.50 S/. 0.50

COSTO TOTAL S/. 44.10

Page 12: Proyecto: Sensor de Temperatura

ESQUEMA CIRCUITAL

Page 13: Proyecto: Sensor de Temperatura

FUNCIONAMIENTO DEL CIRCUITO

1. Salida del Sensor de Temperatura LM35

En esta parte, el sensor cuenta con un voltaje de alimentación de 5V que

por cada variación de temperatura que se detecte, la salida variará en 10mV.

Esta salida correspondiente el pin 2 del componente, se conectará al

ADC0804 como se verá más adelante.

2. Conversión a Digital por el ADC0804

La parte más importante del circuito es la conversión del voltaje

correspondiente a la temperatura a un valor digital y esto ocurre en el

aDC0804 (ver figura 4).

La salida del sensor de temperatura se conecta al ADC0804 como voltaje

analógico de entrada. Este será el voltaje que se convertirá a un valor digital.

Como se quiere una precisión de 10mV por 1°C, debemos calibrar el

convertidor para que el valor binario que producida varíe en un bit por cada

10mV.

Para esto, debemos determinar la resolución a 10mV y calcular el voltaje

de referencia como sigue: 250 x 10mV = 2.56V.

Sin embargo, la entrada a Vref/2 es la mitad del voltaje de referencia

calculado; es decir 1.28V.

-12V

+12V

Salida

Analógica

Page 14: Proyecto: Sensor de Temperatura

Para obtener este valor, se conectaron 5V a la entrada de un potenciómetro.

Regulando la perilla y con la ayuda de un multímetro se pudo obtener 1.28V

para la entrada del voltaje de referencia del ADC.

Al ADC también se adicionaron una resistencia de 10kΩ y un condensador

de 150pF (a CLK IN y CLK OUT) para que se obtuviera una frecuencia de reloj

interno de 606 KHz y por ende una velocidad de conversión de 100μs.

El ADC cuenta con una señal de finalización de conversión y una de

comienzo de conversión .

Se puede aprovechar el hecho de que arroje un cero como señal de

finalización de conversión y que la misma se active otra vez cuando = 1.

Es por esto que conectamos ambos terminales para que el CI y las salidas

digitales siempre estén habilitadas.

Finalmente, las salidas de D0 a D7 (siendo D7 el MSB) representan el valor

digital de un voltaje que a su vez representa una temperatura en un tiempo

determinado.

3. Enrutamiento de Datos al Puerto Paralelo por el CI 74LS157

Una vez que se tenga el valor digital de la temperatura, es posible

direccionar estos bits hacia la PC. Para hacerlo se dispone del puerto paralelo

cuyos 25 pines describen los diferentes registros que este maneja, y que como

ya hemos visto, se utilizará el registro de estado para ingresar los bits del ADC.

Sin embargo, existe un inconveniente, sólo se permiten ingresar 5 bits a la vez

por el puerto paralelo.

Para solucionar este problema debemos enrutar los datos de tal manera

que por cada valor leído de 8 bits, la PC lea 4 bits MSB y 4 bits LSB.

Lograremos esto utilizando el multiplexor 74LS157 de la siguiente manera:

Se conectan los 4 bits MSB (D7 a D4), de la salida digital del ADC, a las

entradas de A0 a A3 del multiplexor; y los 4 bits LSB (D3 a D0) a las entradas de

B0 a B3 del multiplexor.

En consecuencia, cuando termina el ADC de convertir un voltaje analógico

del sensor, enviará los 8 bits de las salidas al multiplexor, el cual los

distribuirá en grupos de 4 bits (MSB y LSB).

Como sabemos, para seleccionar qué bits son los que pasarán por las

salidas del multiplexor se dispone de un bit selector S. Cuando está en 0

permite el paso de A y cuando están en 1 permite el paso de B.

Después que se especificaron las salidas del multiplexor se tienen que

conectar al puerto paralelo, específicamente, al registro de estado.

Page 15: Proyecto: Sensor de Temperatura

4. Lectura del Puerto y Entrada a la PC

Ya hemos visto cómo se disponen las salidas del multiplexor para que

ingresen al puerto paralelo.

Ahora, para lograr esto disponemos de un conector DB25 macho que se

conecta el extremo del conector a la PC y el otro extremo a los distintos pines

que se necesiten. Utilizaremos el registro de estado para ingresar los datos

hacia la PC y el registro de datos para enviar un 1 hacia el multiplexor como

señal de selección (pin 2 del dB25).

Recordemos que el registro de estado tiene 5 bits y uno de ellos está activo

en bajo (S7), por lo que tenemos que internamente eliminar uno (el último

LSB) y negar .

También debemos enviar una señal de selección desde la PC hacia el

multiplexor (pin 1 del 74LS157) para seleccionar bien sea las entradas A o B.

Para solucionar estos inconvenientes procedemos a describir el algoritmo

utilizado para obtener el valor real de conversión de 8 bits calculado por el

ADC0804.

Comenzamos enviando un cero por el pin 2 del DB25 hacia la señal de

selección del multiplexor para que los 4 bits MSB se puedan pasar hacia la

salida del MUX y por el puerto paralelo hacia la PC.

Una vez obtenido el valor de A (MSB) pasamos a eliminar la quinta

entrada, haciendo una operación AND 11110000(2) al valor obtenido por

el puerto 0 x 379 (registro de estado). De esta forma el valor leído de 8

bits quedará así ( S6 S5 S4 0 0 0 0).

Luego tenemos que cambiar el bit para que esté activo en alto. Para

lograr esto realizamos la operación XOR entre el resultado anterior y el

número 100000000(2). El resultado es (S7 S6 S5 S4 0 0 0 0).

El resultado anterior son los primeros 4 bits (MSB) de la lectura de la

temperatura. Para obtener los otros 4 bits correspondientes a B (LSB),

enviamos un 1 por el puerto 0 x 378 (registro de datos) hacia la señal de

selección del multiplexor. Luego leemos el valor enviado del puerto 0 x

379 (registro de estado).

Para B hacemos lo mismo que para A, aplicamos AND y XOR, pero al ser

este valor LSB tenemos que hacer un desplazamiento de bits hacia la

derecha y el resultados será: (0 0 0 0 S7 S6 S5 S4).

Ahora tenemos que sumar ambos valores de A y B para obtener el valor de

conversión o la temperatura leída en un determinado instante. Y el

resultado obtenido es (A0 A1 A2 A3 B0 B1 B2 B3).

Page 16: Proyecto: Sensor de Temperatura

PROGRAMA Public Class Form1

Private Sub Detener_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Detener.Click

Timer1.Stop()

End Sub

Private Sub iniciar_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles iniciar.Click

Timer1.Start()

Timer1.Interval = 1000

ProgressBar1.Maximum = 0

ProgressBar1.Maximum = 255

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

Dim msb, lsb, temp As Integer

'para seleccionar el estado del multiplexor S=0 ->A

Out(Val("&H378"), Val("0"))

'se retorna los valores en decimal

lsb = (Str(Inp(Val("&H379")))) / 16

'para seleccionar el estado del multiplexor S=1 ->B

Out(Val("&H378"), Val("15"))

'se retorna los valores en decimal

msb = Str(Inp(Val("&H379")))

temp = msb + lsb

'temp = lsb

temtext.Text = temp 'msb + lsb

ProgressBar1.Value = temp

End Sub

End Class

Page 17: Proyecto: Sensor de Temperatura

CONCLUSIÓN

Con el presente proyecto se ha podido determinar que es relativamente

sencillo desarrollar un sistema de control de una variable física, mediante

materiales de bajo costo y con un conocimiento básico de la electrónica sobre

circuitos eléctricos.

También se ha comprobado que es posible digitalizar una variable física

continua en valores binarios discretos para entregar como resultado, mediciones

de mayor precisión.

El sensor de temperatura utilizado en el proyecto, varía su voltaje de salida

con respecto a la temperatura sensada. Esto da a conocer que dentro del

mecanismo del sensor, una resistencia interna varía conforme aumenta o

disminuye la temperatura, haciendo a su vez variar el voltaje de salida. De esta

manera comprobamos las propiedades de los termistores, o sensores de

temperatura cuyas resistencias varían con la temperatura.

Otro aspecto sujeto a comprobación es la capacidad de precisión por parte del

convertidor analógico a digital. Se ha comprobado que la entrada adicional de

voltaje de referencia no da más precisión que la definida por el sensor.

El valor del voltaje de referencia sólo disminuye la precisión del sensor y se

ajusta sólo para una concordancia con el mismo.