/* Incluir la librería LiquidCrystal
Documentación de la librería en:
https://www.arduino.cc/en/Reference/LiquidCrystal
*/
#include <LiquidCrystal.h>// Crear un objeto LiquidCrystal usando el constructor:// LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);constint SENSOR_TEMP_PIN = A0;int loopCounter = 0;float accumulatedTemps = 0;void setup(){// lcd.begin(cols, rows)
lcd.begin(16, 2);
lcd.print("Temperatura:");// También se mostrará información a través del Monitor serie
Serial.begin(9600);}void loop(){// Devuelve un valor entre 0 y 1023int sensorValue = analogRead(SENSOR_TEMP_PIN);// Ya que se le aplica 5V, 1023 unidades = 5Vfloat voltage = (sensorValue / 1023.0)*5.0;// Ajuste del sensor (TMP36 inherent 0.5 V output offset)
voltage -= 0.5;// 10 mV por cada grado de temperatura// 0.01 V = 1ºC -> grados = voltaje * 100float celsiusDegrees = voltage *100;
accumulatedTemps += celsiusDegrees;
loopCounter++;// Se mostrará la temperatura una vez por cada 10000 veces// que se tomen los datos, calculando la temperatura media// de todas las medicionesif(loopCounter %10000 == 0){
lcd.setCursor(0, 1);String result = "";
result += (accumulatedTemps / loopCounter);// Símbolo de grados º 223 (0xDF)
result += (char)223;
result += "C";
lcd.print(result);// Mostrar también la temperatura en el monitor serie
Serial.println(result);// Se inicia de nuevo la cuenta de mediciones
loopCounter = 0;
accumulatedTemps = 0;}}