viernes, 12 de julio de 2013

Arduino Tutorial 13: LCD+Sensor de temperatura

En esta práctica de hoy, y tal y como dijimos en la práctica 10 , vamos a hacer aparecer por nuestra pantalla LCD el valor de la temperatura que nos indique el sensor de temperatura TMP 36.

Para realizar esta práctica, vamos a tener en cuenta los datos y explicaciones que dimos en la   práctica 10 y en la práctica 8, y vamos a hacer un compendio de todo ello para mostrar lo que nos interesa en pantalla.

Sensor de temperatura -LCDComo vemos en este maremagnúm de cables XD, tenemos instalado nuestro potenciómetro de 10 k. Como vemos, la conexión de los pines de la lcd es la misma (en naranja) añadiendo la conexión del tmp 36 a un pin analógico del Arduino. Como referencia, vemos que se conectan los 6 pines de la izq de la lcd y los 6 pines de la derecha, dejando 4 pines por en medio. Esta puede ser una clara referencia de como podemos visualizar físicamente si hemos hecho una conexión correcta. Prestar especial atención a no equivocar los pines entre sí.




Como detalle hay que añadir que la disposición de la mayoría de las placas LCD está homologada, es decir, las placas de 16x2 son todas las mismas, al igual que el conexionado es el mismo que en 16x1 y 16x4, no siendo así en el 20x4.

Con el código vamos a tomar el código original del sensor de temperatura, recordamos que utilizábamos una variable llamada voltaje en la que establecíamos de 0 a 5 v el voltaje que nos transmitía el sensor, y una vez hecho esto, lo transformábamos a grados con la fórmula encontrada en el datasheet, disponible en la práctica 8. Lo que vamos a imprimir por la pantalla de nuestra LCD va a ser el valor directo de esa variable grados. Básicamente vamos a cambiar la instrucción serial print por la instrucción lcd print.

video

Os dejo con el código del texto

// incluimos la librería liquidcrystal
#include <LiquidCrystal.h>

// Declaramos los pines que conectamos a la lcd
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
float voltaje;//La variable float tiene decimales incluidos

void setup() {
  lcd.begin(16, 2);
  lcd.print("Temperatura");
  Serial.begin(9600);//Iniciamos la comunicación con el puerto serial
}

void loop() {
   float grados; //Utilizamos una
   voltaje = analogRead(0) * 0.004882814;
                               
   grados = (voltaje - 0.5) * 100.0;
                               
 
  // nos colocamos en la segunda fila
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
 //lcd.print(millis()/1000);
  lcd.print(grados);
}