Práctica 8 - Sensor de Temperatura PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

Sistemas electrónicos y

fotónicos (SEF)
Curso 2019/2020

PRÁCTICA 8: SENSOR DE TEMPERATURA


En esta práctica vamos a aprender a utilizar los sensores de temperatura. Existen muchos
tipos, pero de momento usaremos los que tenéis disponibles, el LM35 y el termistor. Los
que tengáis un LM35 en casa estáis de suerte y los que no, y tengan un termistor, lo tienen
un poco más complicado, pero no imposible. No obstante, tenemos la herramienta
TinkerCAD pensada para los que no disponen de material físico para el desarrollo de la
práctica. Empezamos.
1. SENSOR LM35
El LM35 es un sensor lineal de bajo coste de temperatura de precisión, capaz de medir
temperaturas entre -55˚C y +150˚C. Ya viene calibrado de fábrica, con una precisión de ±0.5˚C
a 25˚C. Está disponible en varios encapsulados diferentes, siendo el más común el TO-92.
Consta únicamente de tres pines: alimentación (con un margen entre 4V y 20V), masa y
salida.

Su conexión a un microcontrolador es muy sencilla, ya que si solamente se requiere medir


temperaturas positivas no es necesario utilizar ningún otro componente, como se muestra
en el siguiente esquema:

La tensión de salida, tal y como se indica en la figura anterior, se lee con una sensibilidad
de 10mV/°C, es decir, que si el sensor lee 10mV eso equivale a 1°C. Los 0mV representan
un valor de offset que este sensor no tiene, pero que si quisiéramos leer valores de
temperatura por debajo de 0°C habría que tener en cuenta, pero no es nuestro caso.

Como ya sabemos de prácticas anteriores, la lectura del sensor se hace a través de un pin
analógico el cual por el convertidor ADC de 10 bits leerá un valor entre 0 y 1023. Para
traducirlo a voltaje, hay que aplicar la siguiente expresión:

𝐿𝑒𝑐𝑡𝑢𝑟𝑎𝑠𝑒𝑛𝑠𝑜𝑟
𝑉𝑜𝑢𝑡 (𝑉) = ∗ 5𝑉
1023

donde “𝐿𝑒𝑐𝑡𝑢𝑟𝑎𝑠𝑒𝑛𝑠𝑜𝑟 ” es el valor entero entre 0 y 1023 leído en el pin analógico.

Por tanto, una vez leída tensión proporcionada, como ésta se interpreta como 10mV/°C,
es decir, 0.01V/°C podemos traducir a temperatura aplicando la siguiente expresión:
Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

𝑉𝑜𝑢𝑡 (V)
𝑇𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑎(°C) = = 𝑉𝑜𝑢𝑡 ∗ 100
V
0.01 (°C)

El código para realizar una medida de temperatura es el siguiente:

¿Por qué se utilizan variables tipo float? La temperatura puede no ser una medida entera,
sino que puede ser una medida con decimales. Se debería declarar la variable de lectura
del pin analógico como un entero ya que lee valores enteros entre 0 y 1023, aunque en
este caso no se ha creado variable para ello, sino que se ha utilizado directamente
analogRead(). “Voltaje” es un tipo float, aunque su valor sea entero, ya que se utilizará
posteriormente una ecuación (la de la temperatura) que devuelve el tipo de dato flotante.

-Esquema de conexión:
Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

El esquema es sencillo y directo. Para realizar lecturas con el sensor se conectarán las patillas
a Vcc, GND y a un pin de entrada analógico (en este caso el A0) tal y como se muestra en el
esquema de conexión.
¡CUIDADO!
En TinkerCad, el sensor de temperatura que hay es otro, es el TMP36. Es idéntico al LM35
solo que hay que restarle un valor de 50 de offset al valor leído, es decir, se puede eliminar
en la línea de código cuando pasas a temperatura. Es una mejora del LM35, que para medir
valores de temperatura negativos necesita de una alimentación simétrica, inconveniente
que con el TMP36 se resuelve.
Ejemplo en tinkerCAD para el TMP36:
-Sin quitarle offset:

-Si quito el Offset:


Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

2. TERMISTOR
Un termistor es un sensor no lineal de temperatura por resistencia. Su funcionamiento está basado
en la variación de la resistividad que presenta un semiconductor con la temperatura. Existen dos tipos
de termistores que son:

-NTC (Negative Temperature Coefficient): La resistencia disminuye cuando aumenta la temperatura.


Son los más comunes, los valores óhmicos típicos para una temperatura ambiente (25°C) son 5k, 10k,
50k, 100kΩ. El rango de temperatura es de [-55,260] °C.

-PTC (Positive Temperature Coefficient): La resistencia aumenta cuando aumenta la temperatura.

No tienen polaridad y para comprobar su funcionamiento se puede medir su resistencia con un


polímetro y ver como varía en función de los cambios de temperatura, apretando el termistor con los
dedos, por ejemplo, o acercando un secador de pelo para ver una variación más brusca.

Os dejo un enlace a YouTube de un vídeo donde se explica con más detalle el


funcionamiento de termistores con algunos ejemplos.

https://www.youtube.com/watch?v=obLccs8dRdg

-Esquema de conexión:
Como con los termistores no se puede medir un valor de resistencia de forma directa, se
utiliza un sencillo “truco” que ya conocemos llamado divisor de tensión. La idea es conectar
en serie con el termistor una resistencia, aplicar tensión en el extremo del conjunto y desde
el punto medio unir a una entrada analógica de la placa del microcontrolador. De esta
manera traducimos un cambio de resistencia del termistor en una variación de tensión que
sí podemos medir desde el microcontrolador. La siguiente figura muestra el esquema de
conexión que como se puede observar es muy sencillo:
Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

En este ejemplo, el
termistor utilizado es
de 100KΩ, por eso es
por lo que la otra
resistencia se pone de
100KΩ. Si el termistor
fuese de otro valor, la
resistencia que
completa el divisor de
tensión tendría que ser
del mismo valor. Es
conveniente hacerlo
así.
Código de programación para un termistor en Arduino:
Antes de poder comprender las líneas de código para el funcionamiento del termistor, he
creído conveniente comentar como se puede convertir la variación de resistencia del
termistor en temperatura. Como la respuesta de este sensor no es lineal, entran en juego
las matemáticas. No te asustes pues simplemente lo voy a comentar y os dejo el código
explicado y una web para calcular lo que sea necesario para realizar la práctica.
Como digo, al no obtener una respuesta lineal, y esto quiere decir que la resistencia no varía
en línea recta con la temperatura (mira la gráfica del NTC un poco más arriba y verás que es
tipo curva), se hace necesario un modelo matemático (una ecuación) que permita obtener
el valor de temperatura. Esta ecuación recibe el nombre de Ecuación de Steinhart-Hart:

1
= 𝐴 + 𝐵 ∗ ln(𝑅) + 𝐶 ∗ [ln⁡(𝑅)]3
𝑇

donde:
T=valor de temperatura en grados Kelvin (hay que pasarlo a centígrados en el sketch).
R=valor de la resistencia en Ω que nos da en termistor
A, B, C son coeficientes Steinhart-Hart. Dependen del material del termistor y nos los da el
fabricante en el datasheet, aunque podemos aproximarlos como os explicaré a
continuación.
En resumen, os cuento esto porque resulta necesario utilizar esta fórmula en nuestro código
debido a la no-linealidad del termistor, para que veáis un poco de donde sale todo esto.
Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

Os dejo el sketch junto con la práctica para que podáis tenerlo. En el vienen explicadas las
líneas de código. Voy a centrarme en cómo obtener los coeficientes que, en función del
termistor que tengáis tendréis que cambiar.
¿Cómo hallar los coeficientes S-H?
Para ello utilizaremos la siguiente herramienta:
https://www.thinksrs.com/downloads/programs/therm%20calc/ntccalibrator/ntccalculato
r.html
Curva característica de un termistor NTC, la azul que pone S-H model.
Parámetros a modificar

Por defecto la página carga un termistor de 10kΩ. Esto se puede ver en el valor de R2, que
es 10000Ω a una temperatura T2 de 25°C así que, si tu termistor es de 10kΩ, podrías
directamente coger los valores A, B, C y copiarlos directamente en la línea de código
correspondiente.
En el ejemplo que estamos siguiendo, la NTC es de 100kΩ. Para obtener los coeficientes,
solo tengo que modificar R1, R2, R3 añadiendo un 0 ya que la resistencia es 10 veces mayor:
Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

Coeficientes que tenemos que copiar en nuestro sketch

Parámetros modificados para un termistor de 100kΩ


Una vez realizado este proceso, hay que ir al sketch que os he dejado y sustituís los
coeficientes obtenidos en la línea de código correspondiente. Os dejo una captura, lo que
está en el recuadro es lo que tenéis que sustituir para vuestro caso:

Os dejo una web donde amplia el tema de sensores de temperatura por si es de vuestro
interés:
https://proyectoarduino.com/sensor-de-temperatura/
Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

ACTIVIDAD 1
-Si utilizas sensor LM35: Identifica en el datasheet del sensor los parámetros típicos de
temperatura máxima y mínima a 25°C, así como su precisión y tipo de encapsulado. Copia y
pega remarcando la parte del documento donde se pueden encontrar estas
especificaciones.
-Si utilizas un LM35 o un termistor: Comprueba el funcionamiento de tu sensor midiendo la
temperatura ambiente de tu puesto de trabajo habitual. Copia y pega una captura donde se
vea el código y la lectura. Si usas TinkerCad haz lo mismo, pero indica en el sensor 25°C a ver
que lectura obtienes.
Sistemas electrónicos y
fotónicos (SEF)
Curso 2019/2020

ACTIVIDAD 2
Debido a la situación que se está viviendo, se están incrementando los controles de
temperatura en personas. Como futuros técnicos en electromedicina, vamos a implementar
una alarma por exceso de temperatura. Para ello utilizaremos unos indicadores led, uno
verde y otro rojo y mostraremos la lectura en el monitor serie. El funcionamiento será el
siguiente:
-Inicialmente los indicadores led estarán apagados.
-Debemos hacer que el microcontrolador lea cada medio segundo la tensión entregada por
el sensor y convertir esa tensión a grados como se ha explicado anteriormente.
-Si la temperatura es inferior a 38°C, se encenderá el indicador verde y permanecerá
encendido hasta que se supere esa temperatura. Se mostrará el siguiente mensaje por el
monitor serie: “La temperatura es de X grados.”
-Si la temperatura es igual o superior a 38°C, se encenderá el indicador rojo y empezará a
parpadear con una frecuencia de 200ms hasta que la temperatura vuelva a estar por debajo
de los 38°C. Se mostrará el siguiente mensaje por el monitor serie: “La temperatura es de X
grados. Alarma activada”
Os he dejado junto con la práctica un video del proceso y de cómo podemos simular el
aumento de la temperatura.

También podría gustarte