Tesmistor: todo lo que necesitas saber para medir temperatura en tus proyectos

termistor

En otros artículos se han analizado sensores de temperatura diferentes. Uno de los elementos o dispositivos que puedes usar para medir dicha temperatura es precisamente el termistor, en inglés thermistor (thermally sensitive resistor o resistencia sensible a la temperatura). Como su propio nombre indica, se basa en un material que cambia su resistencia eléctrica según la temperatura a la que se someta.

De esta forma, mediante una simple fórmula, sabiendo el voltaje y la intensidad a la que está sometida, se puede analizar la resistencia para determinar la temperatura según su escala. Pero no solo se usa como sensor de temperatura, también se puede usar para alterar algunas características del circuito en función de su temperatura, como elemento de protección contra excesos de corriente, etc.

La elección del tipo de sensor que vas a usar para tu proyecto dependerá de las necesidades que tengas. Otros artículos que te pueden interesar sobre sensores de temperatura:

  • LM35: sensor de temperatura y humedad.
  • DS18B20: sensor de temperatura para líquidos.
  • DHT22: sensor de temperatura y humedad de precisión.
  • DHT11: sensor de temperatura y humedad barato.

Introducción al termistor

símbolo del termistor

En el mercado puedes encontrar gran cantidad de termistores con diferentes encapsulados y de diferentes tipos. Todos ellos se basan en el mismo principio, su material semiconductor (óxido de níquel, óxido de cobalto, óxido férrico,…) se verá alterado cuando varía la temperatura, alterando así su resistencia interna.

Tipos

Entre los tipos de termistor podemos destacar dos grupos:

  • Termistor NTC (Negative Temperature Coefficient): estos termistores de coeficiente de temperatura negativo, al aumentar la temperatura aumenta también la concentración de portadores de carga, por tanto, se reduce su resistencia. Esto los hace prácticos para que se puedan usar como:
    • Sensores de temperatura bastante frecuentes en multitud de circuitos como detector resistivo de bajas temperaturas, en automoción para las mediciones en motores, en termostatos digitales, etc.
    • Limitador de corriente de arranque, cuando se usa un material con una elevada resistencia inicial. Cuando pasa la corriente por ellos al encender el circuito, éste dispositivo se calienta debido a la resistencia que presenta y conforme aumenta la temperatura la resistencia irá bajando progresivamente. Eso evita que al inicio, el flujo de corriente que pase al circuito sea muy alto.
  • Termistores PTC (Positive Temperature Coefficient): son otros termistores de coeficiente de tempertura positivo, con unas concentraciones de dopante muy elevadas que les dan el efecto contrario a los NTC. Es decir, en vez de bajar la resistencia con el aumento de temperatura, en ellos se produce el efecto contrario. Por ese motivo, se pueden usar como fusibles para proteger circuitos de sobreintensidad de corriente, como temporizador para desmagnetizar pantallas de tubos de rayos catódicos o CRT, para regular la corriente de motores, etc.
gráfico termistor NTC

Gráfico de la curva de resistencia con respecto a la temperatura de un NTC

No hay que confundir al termistor con el RTD (Resistance Temperature Detector), ya que a diferencia de ellos, los termistores NO cambian la resistencia de forma casi lineal. El RTD es un tipo de termorresistencia para detectar temperatura basándose en la variación de la resistencia del conductor. El metal de éstos (cobre, níquel, platino,…), al calentarse, tiene una mayor agitación térmica que dispersarán los electrones y reducirán su velocidad media (aumenta la resistencia). Por tanto, a mayor temperatura mayor resistencia, como ocurre con el NTC.

Tanto los RTD, NTC y PTC son bastante comunes, especialmente los NTC. El motivo es que pueden desempeñar su función con un tamaño muy reducido y un precio muy barato. Puedes adquirir termistors NTC como el popular MF52 por poco precio en tiendas como Amazon, al igual que las sondas RTD, asi como en otras tiendas de electrónica especializadas.

En cuanto al pinout, solo tiene dos pines, como las resistencias normales. Su forma de conectarlo es igual que la de cualquier resistencia, solo que el valor de resistencia no permanecerá estable, como ya debes saber. Para más información sobre los rangos de temperatura aceptados, el voltaje máximo soportado, etc., puedes consultar los datos deldahtasheet del componente que hayas comprado.

Integración con Arduino

esquema de Arduino con termistor

Para integrar un termistor con tu placa Arduino, la conexión no puede ser más sencilla. Solo es necesario adaptar esa teoría y cálculos para el código que tienes que generar en tu Arduino IDE. En nuestro caso, he supuesto el uso de un termistor NTC, concretamente el modelo MF52. En caso de usar otro modelo de termistor, debes variar los valores A, B y C para adaptarlos según la ecuación de Steinhart-Hart:

ecuación del modelo Steinhart-Hart

Siendo T la temperatura medida, T0 es el valor de temperatura ambiental (puedes calibrarlo según te interese, como por ejemplo 25ºC), R0 sería el valor de la resistencia del termistor NTC (en nuestro caso el que aporta el datasheet del MF52, y no debes confundirlo con la resistencia adicional que he agregado al circuito), y el coeficiente B o Beta lo podrás encontrar en la hoja técnica del fabricante.

El código quedaría por tanto así:


#include <math.h>
 
const int Rc = 10000; //Valor de la resistencia del termistor MF52
const int Vcc = 5;
const int SensorPIN = A0;

//Valores calculados para este modelo con Steinhart-Hart
float A = 1.11492089e-3;
float B = 2.372075385e-4;
float C = 6.954079529e-8;
 
float K = 2.5; //Factor de disipacion en mW/C
 
void setup()
{
  Serial.begin(9600);
}
 
void loop() 
{
  float raw = analogRead(SensorPIN);
  float V =  raw / 1024 * Vcc;
 
  float R = (Rc * V ) / (Vcc - V);
  
 
  float logR  = log(R);
  float R_th = 1.0 / (A + B * logR + C * logR * logR * logR );
 
  float kelvin = R_th - V*V/(K * R)*1000;
  float celsius = kelvin - 273.15;
 
  Serial.print("Temperatura = ");
  Serial.print(celsius);
  Serial.print("ºC\n");
  delay(3000);
}

Espero que este tutorial te haya servido de ayuda…


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.