You are on page 1of 9

Leer el sensor de temperatura LM35 en Arduino

El LM35 es un sensor de temperatura de precisión integrado. A diferencia de otros dispositivos


como los termistores en los que la medición de temperatura se obtiene de la medición de su
resistencia eléctrica, el LM35 es un integrado con su propio circuito de control, que proporciona
una salida de voltaje proporcional a la temperatura.

La salida del LM35 es lineal con la temperatura, incrementando el valor a razón de 10mV por cada
grado centígrado. El rango de medición es de -55ºC (-550mV) a 150ºC (1500 mV). Su precisión a
temperatura ambiente es de 0,5ºC y soporta voltajes de entre 4V y 30V .

Los sensores LM35 son relativamente habituales en el mundo de los aficionados a la electrónica
por su bajo precio, y su sencillez de uso.

Cuando leemos un sensor analógico con Arduino lo hacemos a través de la


función analogRead que nos da un valor entre 0 y 1023, 1024 valores posibles. Si tenemos 0V a la
entrada nos devolverá 0 y si tenemos 5V nos devolverá 1023.

A partir de esta información podemos obtener una fórmula matemática que nos calcule la
temperatura en función del voltaje que nos facilita el LM35.

Temperatura = Valor * 5 * 100 / 1024

Para más detalle de cómo se obtiene esta fórmula puedes leer la información de la siguiente
página web : https://programarfacil.com/podcast/48-sensor-de-temperatura-en-arduino/

ESQUEMA ELÉCTRICO

El patillaje del LM35 se muestra en la siguiente imagen. Los pines extremos son para alimentación,
mientras que el pin central proporciona la medición en una referencia de tensión, a razón de
10mV/ºC.
Lo primero es ver cómo se conecta el LM35 con Arduino el esquema eléctrico que vamos a seguir
es el siguiente:

Figura 1. Conexión sensor de temperatura LM35 y Arduino.

EJEMPLO DE CÓDIGO

El código necesario para realizar la lectura es simple, quedando de la siguiente manera:


Dos cosas a tener en cuenta son la utilización del monitor serie y de la función delay. El puerto
serie nos permite ver el resultado de una forma rápida a través del entorno de desarrollo de
Arduino. Se utiliza la función begin para iniciar la comunicación con el monitor serie y para escribir
cada línea utilizamos la función print. Una vez cargado el código en nuestra placa, puedes ver el
monitor serie si accedes a Herramientas/Monitor serie o con el atajo de teclaco Ctrl+Mayús+M.

Así pues este código nos permite ver las lecturas en grados centígrados de nuestro LM35, dichas
lecturas son visibles en el monitor en serie, ahora bien para mostrar estas lecturas en un Display
LCD de 16x2 caracteres basta con una pequeña configuración en el código como veremos en el
siguiente paso.

Los códigos se encuentran como imagen ilustrativa pero de igual forma los dejare adjuntos al final
de este documento para que te sea más sencillo copiarlos.

Circuito del sensor de temperatura y la pantalla LCD

Figura 2. Medición de temperatura mediante LM35 y LCD 16x2 caracteres.

Para este ejemplo agregaremos lo que es un visualizador de textos LCD de 16x2 caracteres para
ello necesitaremos hacer uso de los pines (12, 11, 5, 4, 3,2) de nuestra placa arduino

Material:

-LCD de 16x2

-Potenciómetro de 10k ohm

-Resistencia de 1k ohm
El código a utilizar es el siguiente:

Figura 2.1 Código para visualización de texto en LCD

Este código es básicamente la configuración que agregaremos al código que ya utilizamos


anteriormente así que lo que aremos para poder visualizar las temperaturas en nuestro LCD es
combinar ambos códigos en uno mismo, pero primero los cargaremos por separado para
comprobar el correcto funcionamiento de cada uno de los dispositivos.

Así pues nuestro LCD se mostrara de la siguiente manera:

Figura 2.2 Comprobando el funcionamiento de nuestro Lcd

Recordemos que este código solo sirve para comprobar las conexiones y funcionamiento
de nuestro LCD, por lo cual no registrara valores de temperatura.
Medición de temperatura con LM35 y la pantalla LCD
Con las conexiones que ya tenemos para nuestro LCD y LM35 procedemos a combinar
ambos códigos, la configuración se quedaría de la siguiente manera:

Figura 3. Código para la lectura y visualización de temperatura con LM35 y LCD

Por ultimo podemos comprobar con la lectura en mili voltios lo cual en la imagen es de 747mV
que la temperatura es la correcta recordando que 10mV equivalen a 1°C es decir 74.71°C x 10mV =
747.1 mv, por lo cual este dato concuerda correctamente.
Lista de códigos del ejemplo:

1-Lectura del sensor LM35 en monitor serie

// Declaracion de variables

float tempC; // Variable para almacenar el valor obtenido del sensor (0 a 1023)

int pinLM35 = 0; // Variable del pin de entrada del sensor pin analogico (A0)

void setup() {

// Configuramos el puerto serial a 9600 baudios

Serial.begin(9600);

void loop() {

// Con analogRead leemos el sensor,recordando que estos valore van de 0 a 1023

tempC = analogRead(pinLM35);

// Calculamos la temperatura con la fórmula

tempC = (5.0 * tempC * 100.0)/1024.0;

// Envia el dato al puerto serial

Serial.print(tempC);

Serial.println("C");

// Salto de línea

Serial.print("\n");

// Esperamos un tiempo para repetir el loop

delay(1000);

}
2-Prueba de visualización en LCD

#include <LiquidCrystal.h>

// Declaracion de variables globales

LiquidCrystal lcd (12,11,5,4,3,2); // pines arduino para el LCD

float tempC; // Variable para almacenar el valor obtenido del sensor (0 a 1023)

void setup() {

// Configuramos el puerto serial a 9600 bps

Serial.begin(9600);

lcd.begin(16,2); // Dimensiones de nuestro LCD Columnas y filas

lcd.print("Temperatura");

lcd.setCursor(0,1);

lcd.print("C");

void loop() {

lcd.setCursor(2,1); // Sacamos por pantalla los grados

lcd.print(tempC);

delay(1000);

}
3-Medicion de temperatura con LM35 y LCD (combinación de códigos 1y 2)

#include <LiquidCrystal.h>

// Declaracion de variables globales

LiquidCrystal lcd (12,11,5,4,3,2); // pines arduino para el LCD

float tempC; // Variable para almacenar el valor obtenido del sensor (0 a 1023)

int pinLM35 = 0; // Variable del pin de entrada del sensor (A0)

void setup() {

// Configuramos el puerto serial a 9600 bps

Serial.begin(9600);

lcd.begin(16,2); // Dimensiones de nuestro LCD Columnas y filas

lcd.print("Temperatura");

lcd.setCursor(0,1);

lcd.print("C");

void loop() {

lcd.setCursor(2,1); // Sacamos por pantalla los grados

lcd.print(tempC);

delay(1000);

// Con analogRead leemos el sensor, recuerda que es un valor de 0 a 1023


tempC = analogRead(pinLM35);

// Calculamos la temperatura con la fórmula

tempC = (5.0 * tempC * 100.0)/1024.0;

// Envia el dato al puerto serial

Serial.print(tempC);

Serial.println("C");

// Salto de línea

Serial.print("\n");

// Esperamos un tiempo para repetir el loop

delay(1000);

Enlaces Externos:

Medir temperatura con arduino y sensor lm35:

https://www.luisllamas.es/medir-temperatura-con-arduino-y-sensor-lm35/

Leer el sensor de temperatura LM35 en Arduino:

https://programarfacil.com/blog/arduino-blog/leer-el-sensor-de-temperatura-lm35-en-
arduino/

Termómetro Arduino con pantalla LCD:

https://jorgesanz.es/termometro-arduino-con-pantalla-lcd/

Redes Sociales :

Facebook: https://www.facebook.com/profile.php?id=100080174524997

Si te gusto el video deja tu Like y suscríbete para poder seguir subiendo contenido nuevo al canal,
Saludos cordiales de parte de Francisco Ramirez

You might also like