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.
Como 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.
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);
}