Temperatura con Arduino

Midiendo temperatura con Arduino

En nuestra entrada de hoy, explicamos de forma muy sencilla como medir la temperatura ambiente con Arduino y unos cuantos componentes extras más. Con lo expuesto en este post-tutorial, podrás hacer tu propio termostato, un metro digital o una alarma por temperatura entre otros muchos proyectos.

Objetivos

-Medir la temperatura.
-Convertirla a Fahrenheit y Celsius
-Hacer una alarma por temperatura.

Materiales necesarios.

arduino uno leantec-Arduino UNO
Lm35 temperatura leantec-Sensor LM35DZ
protoboard 400 leantec-Protoboard 400 contactos
protoboard 400 leantec-Cables protoboard

Conociendo el sensor de temperatura LM35DZ

Un sensor de temperatura es un componente electrónico el cual nos devuelve un valor de tensión proporcional a la temperatura a la que está sometido. En nuestro caso, vamos a usar uno de los sensores más comercializados del mundo, el LM35DZ.
Para usar este componente, o cualquier otro, lo primero sería leer la hoja de datos. Aunque no es fácil acostumbrarse a leer este tipo de documentos, que además vienen en ingles.
En este caso nosotros hemos preparado un resumen de los datos más útiles del sensor. En el momento que se necesite información más concreta si será necesarío mirar la hoja de datos.

-Mide temperaturas en grados centigrados.
-Tiene una tolerancia de +/- 1ºC.
-Funciona entre 0º y 100º centigrados.
-Tensión de alimentación: 5V
-Encapsulado igual al de muchos transistores, lo que hace fácil su confusión. Mirar bien la serigrafía.
-Variación de 10mV por grado.

Conexión del sensor.

La conexión del sensor es muy sencilla:

lm35 arduino leantec arduino lm35 leantec

Midiendo valores.

Cargamos el siguiente código en nuestro Arduino.

int sensorPin = A0;//Declaramos el Pin analógico que usaremos.
int sensorValue=0;//Variable para guardar la lectura del Pin analógico.


void setup() {
  Serial.begin(9600);//Iniciamos el puero serie
  
}

void loop() {
  
  sensorValue = analogRead(sensorPin);//Leemos el Pin analógico 

  Serial.print("LM35 ");//Imprimimos en el monitor serial "LM35 " 
  Serial.println(sensorValue);//Imprimimos la lectura del Pin

  delay(2000);//Esperamos 2 segundos para hacer la próxima lectura.                  
}

Ahora vamos a comprobar que valores aparecen el monitor serial cuando hacemos funcionar el programa.

lm35 arduino leantec

Midiendo grados Celsius y Fahrenheit.

El fabricante nos inidica que cada grado que aumente la temperatura a la que está sometido el sensor aumentará en 10mV su tensión de salida y además sabemos que las entradas analógicas de nuestro Arduino mide como máximo 1024 para 5V, por lo que para una lectura cualquiera el valor en voltios será:

voltios=(5/1024)*Lectura. 

Como cada voltio equivale a un grado (1V/10mV=100), si multiplicamos el valor en voltios por 100 obtendremos la temperatura en grados Celsius:

 ºC=((5/1024)*Lectura)*100

  temC=(((5 * sensorValue)*100)/1024);//Calculamos la temperatura en ºC.

Por último, una vez que ya tenemos la temperatura en grados Celsius, para pasarla a grados Fahrenheit solo tenemos que multiplicar está por 1,8.

 ºF=(ºC*1,8)

  temC=(((5 * sensorValue)*100)/1024);//Calculamos la temperatura en ºC.
  temF=(temC*1.8);//Calculamos la temperatura en ºF.

Añadimos las formulas antes propuestas a nuestro código y lo cargamos en Arduino.

int sensorPin = A0;//Declaramos el Pin analógico que usaremos.
int sensorValue=0;//Variable para guardar la lectura del Pin analógico.
int temC=0;//Variable para calcular los grados Celsius.
int temF=0;//Variable para calcular los grados Faherenheit.

void setup() {
  Serial.begin(9600);//Iniciamos el puero serie
  
}

void loop() {
  
  sensorValue = analogRead(sensorPin);//Leemos el Pin analógico 
  temC=(((5 * sensorValue)*100)/1024);//Calculamos la temperatura en ºC.
  temF=(temC*1.8);//Calculamos la temperatura en ºF.
  Serial.print("LM35 ");//Imprimimos en el monitor serial "LM35 " 
  Serial.println(sensorValue);//Imprimimos la lectura del Pin
  Serial.print("Temperatura: ");//Imprimimos "Temperatura: " 
  Serial.print(temC);//Imprimimos la temperatura en ºC.
  Serial.println(" grados Centigrados");//Imprimimos "grados Centigrados"
  Serial.print("Temperatura: ");//Imprimimos "Temperatura: "
  Serial.print(temF);//Imprimimos la temperatura en ºF.
  Serial.println(" grados Fahrenheit");//Imprimimos "grados Fahrenheit"
  delay(2000);//Esperamos 2 segundos para hacer la próxima lectura.                  
}

Esta será la vista del monitor serial.

temperatura arduino leantec

Alarma por temperatura.

Por último y para entender mejor las posibilidades que nos da el saber medir la temperatura con Arduino, haremos una alarma que se activa cuando la temperatura desborda cierto valor.
En nuestro caso, para representar que la alarma está activada, haremos que se encienda el led que incorpora Arduino conectado al pin 13. Pero en vez de encender este led, vosotros podeis activar cualquier otro pin y hacer que este active cualquier otro mecanismo, como por ejemplo un relé y así poder activar cualquier otro aparato tales como ventiladores o calefacción…
int sensorPin = A0;//Declaramos el Pin analógico que usaremos.
int sensorValue=0;//Variable para guardar la lectura del Pin analógico.
int temC=0;//Variable para calcular los grados Celsius.
int temF=0;//Variable para calcular los grados Faherenheit.
int led=13;//Declaramos el pin que usaremos para el led.

void setup() {
  Serial.begin(9600);//Iniciamos el puero serie
  pinMode(led, OUTPUT);//Configuramos el led como salida
  
}

void loop() {
  
  sensorValue = analogRead(sensorPin);//Leemos el Pin analógico 
  temC=(((5 * sensorValue)*100)/1024);//Calculamos la temperatura en ºC.
  temF=(temC*1.8);//Calculamos la temperatura en ºF.
  Serial.print("LM35 ");//Imprimimos en el monitor serial "LM35 " 
  Serial.println(sensorValue);//Imprimimos la lectura del Pin
  Serial.print("Temperatura: ");//Imprimimos "Temperatura: " 
  Serial.print(temC);//Imprimimos la temperatura en ºC.
  Serial.println(" grados Centigrados");//Imprimimos "grados Centigrados"
  Serial.print("Temperatura: ");//Imprimimos "Temperatura: "
  Serial.print(temF);//Imprimimos la temperatura en ºF.
  Serial.println(" grados Fahrenheit");//Imprimimos "grados Fahrenheit"
  delay(2000);//Esperamos 2 segundos para hacer la próxima lectura.  
  
  if(temC>30)//Si la temperatura supera los 30ºC se activa el led
  {digitalWrite(led, HIGH);}
  else {digitalWrite(led, LOW);}//Si no la supera no se activa  
}

Si la temperatura esta por debajo de 30ºC el led se mantiene apagado.

temperatura leantec

Si la temperatura esta por encima de 30ºC el led se enciende.

Leantec tutorial lm35

Etiquetas: , , , ,

Deja una respuesta

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