HACER UN SENSOR DE TEMPERATURA ARDUINO
(TUTORIAL DE TERMISTOR)
Posted by Circuit Basics | Arduino | 69
Los termistores son componentes sencillos, económicos y precisos que facilitan el acceso a los
datos de temperatura para sus proyectos. Estaciones meteorológicas remotas, sistemas de
automatización del hogar y circuitos de protección y control de equipos son algunas
aplicaciones donde los termistores serían ideales. Son sensores analógicos, por lo que el
código es relativamente simple en comparación con los sensores de temperatura digitales que
requieren bibliotecas especiales y un montón de código.
En este artículo, voy a explicar cómo funcionan los termistores, entonces voy a mostrar cómo
configurar un básico Termistorcircuito con un Arduino que emite lecturas de temperatura al
monitor serie o a una pantalla LCD.
Bono: hice una guía de inicio rápido para este tutorial que se puede Descargar y volver a más
tarde si no puedes configurar esto ahora mismo. Cubre todos los pasos, diagramas y código
que necesita para comenzar.
CÓMO FUNCIONA UN TERMISTOR
Los termistores son resistores variables que cambian su resistencia con la temperatura. Se
clasifican por la forma en que su resistencia responde a los cambios de temperatura.
En termistores de Coeficiente de temperatura negativo (NTC), la resistencia disminuye con un
aumento de la temperatura. En termistores de Coeficiente de temperatura positivo (PTC), la
resistencia aumenta con un aumento de la temperatura.
Los Termistores NTC son los más comunes, y ese es el tipo que vamos a utilizar en este
tutorial. Los Termistores NTC están hechos de un material semiconductor (como un óxido de
metal o de cerámica) que ha sido calentado y comprimido para formar un material conductor
de temperatura sensible.
El material conductor contiene Cargue los portadores que permiten que la corriente fluya a
través de ella. Las temperaturas altas causan que el material semiconductor libere más
portadores de la carga. En los termistores de NTC hechos del óxido férrico, los electrones son
los portadores de la carga. En los Termistores NTC del óxido de níquel, los portadores de la
carga son agujeros del electrón.
UN CIRCUITO DE TERMISTOR BÁSICO
Vamos a construir un circuito de termistor básico para ver cómo funciona, por lo que puede
aplicar a otros proyectos más adelante.
Dado que el termistor es un resistor variable, necesitaremos medir la resistencia antes de
poder calcular la temperatura. Sin embargo, el Arduino no puede medir la resistencia
directamente, sólo puede medir el voltaje.
El Arduino medirá la tensión en un punto entre el termistor y una resistencia conocida. Esto se
conoce como un divisor de tensión. La ecuación para un divisor de tensión es:
En términos del divisor de tensión en un circuito del termistor, las variables en la ecuación
arriba son:
Esta ecuación se puede reorganizar y simplificar para resolver para R2, la resistencia del
termistor:
Finalmente, el Ecuación de Steinhart-Hart se utiliza para convertir la resistencia del termistor a
una lectura de la temperatura.
CONECTE EL CIRCUITO
Conecte el termistor y el resistor a su Arduino como este:
El valor del resistor debe ser aproximadamente igual a la resistencia de su termistor. En este
caso, la resistencia de mi termistor es de 100k ohmios, por lo que mi resistencia también es de
100k ohmios.
El fabricante del termistor podría decir que es la resistencia, pero si no, puede utilizar un
multímetro para averiguarlo. Si usted no tiene un multímetro, puede hacer un medidor de
Ohm con su Arduino siguiendo nuestro Medidor Arduino Ohm Tutorial. Sólo necesita saber la
magnitud de su termistor. Por ejemplo, si su resistencia del termistor es 34.000 ohmios, es un
termistor 10k. Si es 340.000 ohmios, es un thermsitor de 100k.
CÓDIGO PARA MONITOR SERIE SALIDA DE LECTURAS DE
TEMPERATURA
Después de conectar el circuito anterior, cargue este código en su Arduino para emitir las
lecturas de temperatura al monitor serie en Fahrenheit:
int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
void setup() {
[Link](9600);
}
void loop() {
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
T = T - 273.15;
T = (T * 9.0)/ 5.0 + 32.0;
[Link]("Temperature: ");
[Link](T);
[Link](" F");
delay(500);
}
To display the temperature in degrees Celsius, just comment out line 18 by inserting two
forward slashes (“//”) at the beginning of the line.
This program will display Celsius and Fahrenheit at the same time:
int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T, Tc, Tf;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
void setup() {
[Link](9600);
}
void loop() {
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
Tc = T - 273.15;
Tf = (Tc * 9.0)/ 5.0 + 32.0;
[Link]("Temperature: ");
[Link](Tf);
[Link](" F; ");
[Link](Tc);
[Link](" C");
delay(500);
}
CÓDIGO PARA LA SALIDA DEL LCD DE LAS LECTURAS DE LA
TEMPERATURA
Para emitir las lecturas de temperatura a un 16X2 LCD, sigue nuestro tutorial, Cómo
configurar una pantalla LCD en un Arduino, a continuación, cargue este código en la placa:
#include <LiquidCrystal.h>
int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
[Link](9600);
}
void loop() {
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
T = T - 273.15;
T = (T * 9.0)/ 5.0 + 32.0;
[Link]("Temp = ");
[Link](T);
[Link](" F");
delay(500);
[Link]();
}
Aquí hay un video del sensor de temperatura para que pueda ver cómo se configura y ver
cómo funciona:
Bueno, eso es todo. Sólo tienes que dejar un comentario abajo si tienes alguna pregunta sobre
este proyecto. Y si te gustan nuestros artículos aquí en los circuitos básicos, Suscríbete y te
avisaremos cuando publiquemos nuevos artículos. También, siéntase libre de compartir esto si
usted conoce a alguien que lo encontraría útil!