Práctica 11: Medición de la temperatura ambiente con LM35DZ (Termómetro)

Page 1

Practicando con S4A II

BY SUSANA OUBIÑA FALCÓN


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Práctica 9: Detección de la temperatura ambiente

“Detección de la temperatura ambiente (LM35DZ)” en S4A. Susana Oubiña Falcón (CC-BY)

1. Objetivo El objetivo de esta práctica es conseguir detectar la temperatura ambiente utilizando el sensor de temperatura LM35DZ. Se persigue que el sensor nos avise, por medio de la iluminación de 3 LEDs, de los respectivos intervalos de temperatura que se muestran a continuación y que además nos aporte la medida exacta de la temperatura ambiente en ese momento:   

[0,17ºC] [18, 31ºC] [32, 100]

El sensor LM35DZ es un sensor digital que posee 3 terminales. Los dos extremos se conectarán a tierra y 5V en la placa arduino y el tercero intermedio, llamado OUT, se conectará a una entrada analógica, en nuestro caso A1, devolviéndonos la lectura tomada o captada por el sensor. Existe un conjunto variado de tipos de sensores LM35, cuyas temperaturas máximas y mínimas se detallan en la siguiente tabla:

Susana Oubiña Falcón

Página 1 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Usaremos 3 LEDs de colores: Verde (pin12), Amarillo (pin11), Rojo (pin 10). Cada LED se iluminará en su intervalo determinado de temperatura. 2. Montaje eléctrico Los componentes electrónicos que requiere el montaje eléctrico son los siguientes: 1 led verde, 1 led amarillo, 1 led rojo y el sensor de temperatura LM35DZ (se encuentra calibrado directamente en grados centígrados sin necesidad de circuitos adicionales). Diodo emisor de luz: LED Un diodo LED es un componente electrónico que emite fotones de luz cuando deja pasar una corriente. Eso sucede, cuando la corriente circula de ánodo a cátodo y se dice que el diodo está polarizado en directa (Va>Vk o Vak>0). Cuando la corriente circula en el sentido contrario, es decir, cuando está polarizado en inversa, se comporta como si fuera un interruptor abierto, no dejando pasar corriente. Su símbolo eléctrico es el siguiente:

Físicamente, presenta dos patillas siendo el ánodo (+) la patilla larga y el cátodo (-) la patilla corta: Los LEDs no siempre emiten luz visible de diferentes colores. Entre su gran variedad, los hay que emiten luz ultravioleta. Tanto el tipo de luz y color determinado vienen condicionados por la composición química de los materiales semiconductores que han usado para su fabricación. En cualquier caso, la frecuencia de emisión de la luz y color de un determinado LED depende de la composición química de los materiales semiconductores utilizados en la fabricación del chip, tal y como se muestra en la siguiente imagen:

Susana Oubiña Falcón

Página 2 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Resistencia eléctrica: R La resistencia eléctrica es la oposición o dificultad que opone un material al paso de la corriente eléctrica. Todos los componentes (que no sean perfectamente conductores) presentan una resistencia eléctrica. Entre ese gran número, existen unos que se construyen exclusivamente para que dificulten el paso de la corriente eléctrica y se denominan resistencias eléctricas. Su símbolo eléctrico es el siguiente:

Físicamente, presentan dos patillas, y se reconoce su valor (en ) por sus cuatro franjas de colores, siendo la 3º el multiplicador y la 4º la tolerancia de la resistencia.

Muestra de diferentes R

Susana Oubiña Falcón

Página 3 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Tabla de colores para el cálculo de la R

Susana Oubiña Falcón

Página 4 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Sensor de Temperatura LM35DZ

El sensor de temperatura genérico LM35 es un sensor digital que presenta una precisión calibrada de 1ºC, mostrando una salida lineal proporcional a la temperatura: Cada grado centígrado equivale a 10mV. Por lo tanto:   

+1500mV = 150ºC +250mV = 25ºC -550mV = -55ºC

Podemos ver en la tabla de “Condiciones de Operación Recomendadas” del punto 1. Objetivo de esta práctica, que el sensor que usaremos no es uno genérico (LM35), que abarcaría temperaturas entre -55º a +150ºC. Nosotros usaremos el LM35DZ, cuyo patillaje es idéntico al anterior, pero su rango de temperaturas es de 0º a 100ºC, ofreciendo valores sólo positivos. Obviamente, sigue siendo un sensor analógico lineal cuya salida es directamente proporcional a la temperatura, siendo su equivalencia la misma: 10mV/ºC El integrado se presenta en diferentes encapsulados pero el más común es el modelo TO-92 que tiene la forma de un típico transistor con 3 patas (ver siguiente imagen); dos de ellas para alimentarlo y la tercera para captar datos, entregándonos un valor de tensión proporcional a la temperatura medida por el dispositivo sensor.

LM35DZ

Nota: Para esta práctica no se requiere medir temperaturas negativas y esto tiene un por qué. Más que nada porque no sé cómo se comporta la tarjeta Arduino por debajo de 0º, y de nada sirve tener un sensor que Susana Oubiña Falcón

Página 5 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

mida hasta -55ºC cuando el resto de electrónica no es capaz de funcionar a esas temperaturas. Además, para obtener las medidas por debajo de 0ºC se necesitaría una fuente de alimentación negativa externa o implementarla en la tarjeta, con lo cual se complica la electrónica. Como el sensor nos da 10mV por cada ºC, eso significa que, para 25ºC tendremos una tensión de 250mV. La temperatura máxima que mide es de 100ºC y se corresponde a 1000mV (1V). Nuestro integrado LM35 funcionará únicamente con temperaturas sobre 0, por lo que sirve para proyectos en un interior (o en el exterior para zonas cálidas). Relativo a la conversión, la salida OUT del sensor LM35DZ se lleva a una entrada analógica de la tarjeta arduino (hemos decidido el pin analógico 1). Entrada que nos proporciona un valor entre 0 y 1023 (y no un voltaje) abarcando 1/5 de la tensión de entrada (0 a 5V). Por lo tanto, hemos de dividir entre 1024 y añadir un factor de ganancia de 5, tal y como se muestra en la siguiente fórmula de conversión:

Tenemos en cuenta que la máxima medida del LM35DZ es de 100ºC. Esto se traduce en una salida de 1V (10mV/ºC * 100ºC = 1V). Para dar los 5V máximos (que corresponderían a una lectura de 1024) necesitaríamos 500ºC (temperatura que nunca alcanzaríamos ya que el sensor se fundiría). El máximo de temperatura que nos proporcionará son 100ºC y el código digital que obtendríamos, aproximadamente, sería de 204. Y para 25ºC, sobre 51. Es decir, tiene poca resolución y esto es un pequeño problema. El circuito eléctrico que vamos a implementar para determinar la temperatura ambiente y mostrar los diferentes intervalos, puede verse en las sucesivas imágenes:

Susana Oubiña Falcón

Página 6 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Circuito de prueba del Sensor LM35DZ. Susana Oubiña Falcón (CC-BY)

Circuito de prueba completo. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 7 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Esquema en la placa protoboard. Susana Oubiña Falcón (CC-BY)

Esquema eléctrico. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 8 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

3. Objetos en el entorno S4A El programa que se crea en el entorno S4A nos aporta la medida de la temperatura ambiente de una habitación. Para ello utilizo 5 objetos: el objeto arduino temperatura, tres objetos led (LedVerde, LedAmarillo y LedRojo) y un objeto AnimacT.

Sprites. Susana Oubiña Falcón (CC-BY)

El objeto arduino temperatura presenta un único disfraz, los LEDs disponen de dos (el disfraz de apagado y el de encendido) y el objeto AnimacT (animación) es un gif animado de un termómetro y se compone de 7 disfraces. En cuanto al escenario, el programa presenta dos fondos: uno al inicio, tras pulsar la bandera verde y otro al hacer clic en el botón Arduino Temperatura. Ambos fondos se muestran en las siguientes imágenes:

Susana Oubiña Falcón

Página 9 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Escenario de inicio (fondo1). Susana Oubiña Falcón (CC-BY)

Escenario Final (findo2). Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 10 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Disfraces del objeto AnimacT. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 11 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

4. Programación en el entorno S4A. El programa que he diseñado mide la temperatura ambiente de una habitación. El resultado que nos muestra es la media de cinco valores de temperatura, así como su error. Con la media de 5 medidas pretendo evitar fluctuaciones y picos en las medidas. De ese modo, la temperatura que obtendré es más estable e inmune a picos puntuales, ya que la temperatura ambiente es una variable que oscila lentamente con el tiempo. La programación del error se basa en el típico cálculo de errores, a través de la media de los 5 errores calculados con la diferencia (en valor absoluto) del valor medio y del valor medido. Inicialmente he creado 5 variables y 2 listas. Las variables son:  temperatura: es la medida del sensor LM35DZ  n: el número de veces que me dará la medida el sensor y se corresponde con los ítems de la lista Valores. Por lo tanto, toma los valores de 1 a 5.  TemperaturaReal: es la media de los 5 valores de la lista Valores medidos por el sensor. Es decir, la media de los 5 valores de temperatura que se miden en un tiempo total de 5 segundos.  N: el número de veces que se calcularán los errores de las medidas y se corresponde con los ítems de la lista Errores. Por lo tanto, toma los valores de 1 a 5.  Error: es la media de los 5 valores de la lista Errores calculados en el programa. Sólo la TemperaturaReal y su Error se mostrarán después del cálculo. En cuanto a las listas. El programa requiere de 2 listas:  Valores: Se compone de 5 items que nos proporciona el sensor en un tiempo total de 5 segundos.  Errores: Se compone de 5 items relativos a los 5 errores calculados en cada medida de la lista Valores. Por claridad, he querido que los elementos de las listas se visionen (no están ocultos) al correr el programa. La siguiente imagen muestra todas las variables y listas, así como, si son o no visibles inicialmente al hacer clic en la bandera verde.

Susana Oubiña Falcón

Página 12 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Variables y Listas del programa. Susana Oubiña Falcón (CC-BY)

El objeto que realmente lleva el peso del programa y que obtiene la temperatura y su error es el objeto arduino ArduinoT. La programación del objeto arduino la divido en 3 pequeños scripts. El primero se activa al hacer clic en la bandera verde, esconde las variable temperatura, TemperaturaReal y Error, borra todos los valores de las 2 listas, apaga los tres diodos y sitúa y hace visible el objeto (rectángulo verde) en una posición determinada del escenario. Finalmente, muestra qué debe hacer el usuario para interaccionar con el objeto arduino:

1ª Parte del script del objeto ArduinoT. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 13 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

La segunda parte se activa al presionar el objeto arduino. Inicialmente vuelve a borrar los valores de las listas (tiene sentido ya que, tras activar el programa, puedo presionar el objeto Arduino las veces que quiera y obtener una nueva medida de la T, sin pasar necesariamente por la bandera verde). Después llama a una animación, mediante el envío de un mensaje que lo recibe el objeto AnimacT. A continuación, nos encontramos con un bucle de 5 repeticiones. En ese bucle, la variable “temperatura” se asocia al pin analógico 1 y, mediante la fórmula explicada en el punto 2 de este documento, nos otorga una medida de temperatura en ºC. Medida que se inserta en el ítem correspondiente de la lista Valores cada segundo, tal y como puede verse en la siguiente imagen:

Script que guarda 5 medidas de T del sensor. Susana Oubiña Falcón (CC-BY)

Obtener el valor más aproximado de la temperatura ambiente es sencillo, sólo hay que programar la media de los 5 valores medidos y que están guardados en la lista Valores. A esa media le llamo TemperaturaReal.

Media matemática para la TemperaturaReal. Susana Oubiña Falcón (CC-BY)

Llegados hasta aquí, sólo nos resta calcular el error de la medida, mostrar la temperatura ambiente que minimiza los problemas de sus fluctuaciones y su error, logrando encender el LED del color correspondiente atendiendo a si la temperatura real pertenece a uno u otro intervalo de temperatura: el pin 12 enciende el LED verde, el pin 11 enciende el LED amarillo y el pin 10 enciende el LED rojo. Esta segunda parte del script del objeto ArduinoT puede verse por completo en la siguiente imagen:

Susana Oubiña Falcón

Página 14 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

2ª Parte del script del objeto ArduinoT. Susana Oubiña Falcón (CC-BY)

A la hora de mostrarnos la variable TemperaturaReal, he querido hacerlo unido al símil del diodo correspondiente encendido. Para ello, uso el comando “enviar a todos….” con los mensajes “Mostrar temperatura”, “Led VerON”, “Led AmaON” y “Led RoOn”. Cuando se envía un mensaje, debe haber un receptor del mismo. En nuestro programa, cuando el objeto LedVerde recibe el mensaje “Led VerON”, cambia su disfraz a encendido (disfraz2) y se encarga de enviar los mensajes a los otros 2 LEDs para que se muestren con el difraz1 (diodo simulado apagado en el escenario), tal y como puede verse en la siguiente imagen:

Susana Oubiña Falcón

Página 15 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

Script del objeto LedVerde. Susana Oubiña Falcón (CC-BY)

Similarmente, actúan y se programan los objetos LedAmarillo y LedRojo. Retomamos el objeto ArduinoT con el cálculo del error porque nos queda pendiente explicar la tercera parte de su script. Su programación es muy sencilla. Simplemente, utilizo la variable N y un bucle de 5 repeticiones para que incluya en la lista Errores el valor absoluto de la diferencia entre la TemperaturaReal y cada valor de temperatura que ha medido antes el sensor. Por lo tanto, obtengo 5 errores y sólo me resta hacer su media aritmética. Media que muestro en el escenario con una precisión de un dígito decimal y, a la vez, la muestro con el botón verde Temperatura con más valores decimales. Al hacer aparecer otra vez el objeto ArduinoT (rectángulo verde), podemos mandar calcular otra vez la temperatura ambiente haciendo clic en el rectángulo. Esta 3ª parte del script explicada, relativa a su error, se muestra en la siguiente imagen:

3ª Parte del script del objeto ArduinoT. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 16 de 17


Práctica 11: Sensor de Temperatura LM35DZ

S4A

El objeto AnimacT recibe un mensaje cuando se presiona el objeto arduino. La animación consiste en ir pasando de forma continua e indefinida (por siempre), de un disfraz a otro, en un tiempo de 0,3 segundos:

Script del objeto AnimacT. Susana Oubiña Falcón (CC-BY)

Finalmente, el objeto arduino también activa un cambio de fondo en el escenario. Esto lo hará cuando muestre el valor de la temperatura, tal y como puede verse en la siguiente imagen.

Script del Escenario. Susana Oubiña Falcón (CC-BY)

5. Vídeo demostrativo del funcionamiento de la práctica El vídeo que muestra el funcionamiento de la práctica “Detección de la temperatura ambiente (LM35DZ)” se visiona en el siguiente link: https://vimeo.com/140958226

Susana Oubiña Falcón

Página 17 de 17


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.