Info

  • Intermedio.
  • Edades: 14+

Temas STEAM

  • Ciencias
  • Tecnología
  • Ingeniería
  • Matemática

Logros y habilidades:

  • Identificar el sensor de temperatura LM35 y su funcionamiento.
  • Escalar las señales y hacer conversión de unidades.
  • Utilizar la pantalla LCD como medio de visualización de variables físicas reales.

Recomendaciones

  • Haber realizado la guía de pantalla LCD.

Introducción

En esta guía será posible aprender  a leer la temperatura y a mostrarla en la pantalla LCD. Pero primero, es necesario aprender a leer voltajes analógicos.

Materiales

  • Tarjeta Innobot o Arduino UNO.
  • Protoboard.
  • Display LCD 16×2.
  • Cables jumper.
  • Potenciómetro de 10KΩ.
  • Resistencia de 220 Ω.
  • Sensor de temperatura LM35.

Desarrollo de la actividad

Programa 1: Lectura de una señal analógica

Primero se leerá con la tarjeta Innobot o Arduino UNO una señal de voltaje que varíe entre 0 y 5V; esta señal se saca de un potenciómetro y muestra  el valor que representa en la pantalla LCD.

Paso 1

Construimos el siguiente circuito.

Si es con la Innobot:

Si es con Arduino UNO:

Nota: Poner cuidado con cual potenciómetro es de contraste y cuál es el potenciómetro con el que se va  a generar la señal de voltaje.

Paso 2

Realice el siguiente programa en CODE:

/**********************************/
/* Empresa:       Pygmalion       */ 
/* Fecha:         28-06-2018      */
/* Nombre:        Entradas analógicas*/
/* Autor:         Felipe Arias    */
/**********************************/

#include <LiquidCrystal.h>            //incluimos la librería para controlar el display lcd

LiquidCrystal lcd(10, 9, 7, 6, 5, 4); //declaramos los pines donde conectaremos la pantalla
void setup()
{
  lcd.begin(16, 2);                   //tamaño de la pantalla LDC que voy a usar
  lcd.clear();                        //limpiamos la pantalla LCD
}

void loop()
{
  lcd.setCursor(3, 0);                //ubicamos el cursor antes de imprimir
  lcd.print("Lectura A0");            //imprimir el letrero que pongamos entre comillas
  lcd.setCursor(5, 1);                //ubicamos el cursor
  lcd.print(analogRead(A0));                   //imprimimos el valor leído por el puerto analógico A0
  delay(100);
  lcd.clear();                        //limpiamos la pantalla LCD
}

Paso 3

Suba el programa a la tarjeta que está usando,  y verifique  que al girar la perilla del potenciómetro  varíe el valor mostrado en la pantalla.

Cuando gire el potenciómetro completamente hacia 0V, observe que la pantalla muestra el valor 0 como en la siguiente figura:

Cuando gire el potenciómetro completamente hacia 5V, observe  que en la pantalla aparece el valor 1023 como lo muestra la imagen:

Programa 2: Sensor de temperatura

Ahora, en vez de generar la señal con el potenciómetro, conecte el sensor de temperatura LM35. Luego se mostrará esta temperatura en la pantalla LCD en la escala °C, K y °F.

La siguiente tabla facilitará la comprensión de la escalización de la temperatura. Hay que tener en cuenta que el sensor entrega 10mV/°C y que el valor 500°C es teórico ya que el sensor LM35 solo funciona correctamente hasta 150°C según su hoja de datos.

Con las celdas de color verde se puede realizar una regla de 3 y deducir la siguiente función, pero primero hay que convertir el valor leído por A0 de entero a coma flotante:

valor = float( analogRead(A0) )

Tc = 500 * valor / 1023

Como esta temperatura esta en °C la nombraremos TC. Las fórmulas para pasar la temperatura en °C a K (TK) y °F (TF) son respectivamente:

Tk = Tc + 273.15

Tf = ( 9 * Tc / 5 ) + 32

Paso 1

Realice el montaje del siguiente circuito.

Si es con Innobot:

Si es con Arduino UNO:

Paso 2

Ahora realice  el siguiente programa en CODE:

/**********************************/
/* Empresa:       Pygmalion       */
/* Fecha:         29-06-2018      */
/* Nombre:        Sensor de temperatura*/
/* Autor:         Felipe Arias    */
/**********************************/

#include <LiquidCrystal.h>            //incluimos la libreria para controlar el display lcd

float valor = 0;                      //inicializamos las variables que usaremos
float Tc = 0;
float Tk = 0;
float Tf = 0;

LiquidCrystal lcd(10, 9, 7, 6, 5, 4); //declaramos los pines donde conectaremos la pantalla
void setup()
{
  lcd.begin(16, 2);                   //tamaño de la pantalla LDC que voy a usar
  lcd.clear();                        //limpiamos la pantalla LCD
}

void loop()
{

  valor = float(analogRead(A0));      //convertimos el valor leido por A0 de int en float

  Tc = 500 * valor / 1023;            //escalizamos la señal de temperatura
  Tk = Tc + 273.15;                   //convertir Tc en Tk
  Tf = (9 * Tc / 5) + 32;             //convertir Tc en Tf

  lcd.print("Temp:");                 //ponemos el cursor donde queremos e imprimimos los valores calculados
  lcd.setCursor(7, 0);
  lcd.print(Tc);
  lcd.setCursor(13, 0);
  lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print(Tk);
  lcd.setCursor(6, 1);
  lcd.print("K");
  lcd.setCursor(9, 1);
  lcd.print(Tf);
  lcd.setCursor(15, 1);
  lcd.print("F");
}

Conceptos Claves

Sensor de temperatura LM35

Los sensores son los elementos (normalmente eléctricos o electrónicos) que nos permiten leer de forma directa o indirecta las diferentes variables físicas del mundo real.

En particular, el sensor de temperatura LM35 es un dispositivo electrónico que cambia sus características eléctricas según la temperatura a la que se encuentre. La conexión de los pines se muestra a continuación:

El pin del medio da una señal de voltaje de 10mV por cada °C.

Escalamiento y conversiones de unidades de temperatura

Normalmente cuando leemos un sensor, no leemos directamente la variable que nos interesa sino, una variable eléctrica que representa la variable de interés. Por ejemplo, este sensor de temperatura nos da una señal de voltaje que representa la temperatura a la que se encuentra. Escalar la señal consiste en encontrar una ecuación a la cual yo lo ingrese el valor en voltaje entregado por el sensor, y ella me retorne la temperatura en la unidad deseada.

La mayoría de las variables físicas pueden medirse en diferentes unidades, por esto es importante saber como se relacionan las diferentes unidades de medida para poder pasar de una a otra según se requiera.

Conversor análogo digital ADC

Es un dispositivo electrónico que recibe una señal eléctrica analógica y la digitaliza para poder ser leída por un sistema digital u ordenador.

La placa Innobot y Arduino UNO tiene el conversor incorporado en las entradas analógica A0 hasta A5. Este ADC tiene una resolución de 10 bits, es decir, puede leer 1024 valores distintos entre 0 y 5V.