Para medir temperatura se pueden usar muchos tipos de sensores analógicos o digitales distintos, con salida en tensión o en resistencia. El sensor LM35 de temperatura es uno de los más usados cuando se necesita un sensor rápido y fácil de montar.

Quizá el sensor analógico con salida resistiva más usado en el mundo de la electrónica para medir temperatura ambiente es la NTC. Sin embargo tiene sus limitaciones y por esto se ha popularizado el uso de los LM35 y los LM335. Si quieres aprender a usar una NTC puedes echarle un vistazo al tutorial sobre su uso.

El sensor LM35 de temperatura y sus características

Linealidad


Una de las grandes características del sensor de temperatura LM35 es que es lineal y esto implica que un cambio de temperatura en el sensor provoca un cambio de tensión en su salida proporcional a una constante.

Por cada grado centígrado que varia la temperatura del sensor, la tensión en la salida se incrementa 10mv.

Por ejemplo, si la temperatura es de 25ºC a la salida del sensor obtendremos 250mv. Si se incrementa a 26ºC la tensión de salida incrementará hasta los 260mv.

Un incremento de 1ºC provoca un incremento de 10mV en la tensión de salida.

Es un sensor puramente lineal y ademas el fabricante, en este caso Texas Instruments, nos asegura que la sensibilidad es casi constante (10mV/ºC) y que su no linealidad es de ±0.2ºC. Lo cual es francamente bueno para aplicaciones como medir la temperatura de una habitación o similares.

El hecho de que sea lineal y con tolerancias tan bajas nos evita tener que cablibrar y obtener curvas de calibración del sensor. Simplemente conectar y listo.

Texas Instruments afirma que el sensor fue diseñado pensando el mercado que usa ºC para medir la temperatura y de esa manera evitar hacer conversiones entre las distintas unidades. Bajo mi opinión esto nos da una pista de que probablemente no es un sesnor ideal para el mundo industrial, ingenieril o científico en el cual tenemos la obsesión de medir los procesos en Kelvin.  Para esto último tenemos el sensor de temperatura lm335.

Precisión


La precisión con la cual podemos obtener lecturas del sensor varia con la temperatura y con el tipo de lm35 que usemos, si, existen varios tipos de sensor de temperatura LM35.

Error temperatura lm35 Fuente: Datasheet Texas Instruments
Error temperatura lm35 Fuente: Datasheet Texas Instruments

Como norma general la precisión del sensor es de 0.6ºC, un valor aceprable para medir temperatura ambiente. Si bien es cierto que el fabricante confirma que el límite que han encontrado en sensores de producción es de 1.5ºC.

Consumo


Cada vez más pensamos en el consumo de la electrónica que se diseña. Esto es debido principalmente a que nos hemos dado cuenta que no es un recurso ilimitado, sobre todo al trabajar con baterias.

En el artículo en el hablamos sobre las NTC usamos dos resistencias cuyo valor en serie era de 20 KΩ. Si se conectan a una fuente de tensión de 5v drenaran 250μA de manera constante. Si esto es mucho o poco, dependera de la aplicación.

El sensor de temperatura lm35 drena en teoria 56μA cuando se encuentra en torno a 25ºC y alrededor de 91μA cuando se acreca a sus extremos superior e inferior.

Esto es algo fácil de comprobar si conectamos un amperímetro en serie con la alimentación del sensor. Realizando la prueba, he obserbado que a 20ºC la corriente que drena un LM35D es de 52 μA.

Corriente del sensor
Corriente del sensor

Pinout lm35 y como conectar el sensor de temperatura

Este sensor de temperatura se puede encontrar en distintos encapsulados entre los cuales se encuentran el T0-220, el SOIC de 8 pines y el TO-CAN, sin embargo, el más usado y conocido es el TO-92.

Texas Instruments nos muestra en el datasheet las distintas posibilidades de empaquetado y cual es el pinout de cada uno de ellos.

PinOut sensor temperatura Fuente: Datasheet Texas Instruments
PinOut sensor temperatura Fuente: Datasheet Texas Instruments

Como puedes observar, tenemos tres pines que conectar.

  • Vs+ es la alimentación del circuito integrado y debemos conectarla a una tensión de entre 3v y 5v
  • GND es la la masa del circuito
  • Vout es la tensión de salida del sensor.

Vout es la señal de tensión que conectaremos a nuestro sistema, por ejemplo a un sistema analógico o al ADC de un microcontrolador o de un sistema digital.

Medir temperatura con el polímetro

Como la salida del sensor lm35 es una tensión proporcional a la temperatura podemos verificar si el sensor de temperatura está funcionando correctamente usando un simple multímetro en configuración del voltímetro.

Simplemente conectaremos la alimentación del sensor (Vs+) a 5 v y GND a masa. Para medir con el polímetro conectaremos el común a la masa y la punta de prueba de tensión a la salida del sensor.

Tensión del sensor a 24.2 grados
Tensión del sensor a 24.2 grados

En el ejemplo de la imagen medimos 242 mv, si se divide entre 10mv/ºC, obtenemos:

(1)    \begin{equation*} Temperatura \ = \ \frac{V_{out}}{10 mV/ºC} = \frac{242mV}{ 10 mv/ºC} \ = \ 24.2 ºC \end{equation*}

Una vez verificado, podrremos pasar a implementar el control de temperatura con el sistema que corresponda. Con el proposito de proporcionar un ejemplo en este artículo lo vamos a realizar con Arduino.

Si quieres que en un futuros tutoriales también se usen otras placas o sistemas de desarrollo, dejalo en los comentario del artículo.


Medir temperatura con sensor LM35

Medir temperatura con Arduino y sensor LM35

Podemos medir la lectura del sensor LM35 usando una de las entradas del ADC del microcontrolador. En los siguientes ejemplos usaremos la entrada analógica 0 de Arduino Uno.

El código es tan sencillo como inicializar el puerto serie en el Void Setup() y leer y calcular la temperatura en el void loop.

La temperatura la calculamos teniendo en cuenta que cada 10 mv a partir de 0v representa 1 grado Celsius. Usamos la instrucción float temperatura = (analogRead(A0) * 500) / 1024; para llevarlo a cabo. Lo primero es convertir la lectura de 0 a 1024 del ADC a milivoltios, esto lo hacemos con una simple regla de tres, y por último dividimos entres 10 para conseguir el valor en ºC. Si observas, para simplificar la operación, en lugar de multiplicar por 5000 y luego dividir entre 10, directamente se simplifica y se divide entre 500.

void setup() {
Serial.begin(9600);
}

void loop() {
float temperatura = (analogRead(A0) * 500) / 1024;
Serial.println(temperatura);
delay(1000);
}

Para mejorar la resolución del ADC podemos modificar la referencia interna del mismo colocando una sentencia analogReference(INTERNAL) que convertirá 1024 del ADC de 5000 mV a 1100 mV. Al realizar esto también se debe cambiar el valor de la instrucción que calcular la temperatura 1100 / 10 = 110.

void setup() {
Serial.begin(9600);
analogReference(INTERNAL);
}

void loop() {
float temperatura = (analogRead(A0) * 110) / 1024;
Serial.println(temperatura);delay(1000);
}

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en www.enriquegomez.me