Arduino: Sensor de temperatura y display en pantalla LCD

in #arduino7 years ago (edited)

Toca hacer un proyecto en Arduino que sea pueda tener su aplicación en el aula y hemos pensado en un diseño de un termómetro en Arduino que a través de un termoresistor la temperatura aparezca en la pantalla LCD en grado centígrados y en grados Fahrenheit.
Vamos con el proceso seguido. Como material necesitamos:

(1) x Placa Elegoo MEGA2560 R3
(1) x Módulo LCD1602
(1) x resistencia de 10 k Ohmios
(1) x termistor
(1) x potenciómetro
(1) x 830 tie puntosBreadboard
(18) x M M cables (cables de puente de macho a macho)
A continuación mostramos el proceso de montaje:

El código fuente que tenemos que cargar en nuestra placa de Arduino es:

#include <LiquidCrystal.h>
int tempPin = 0;
//                BS  E  D4 D5  D6 D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup()
{
lcd.begin(16, 2);
}
void loop()
{
int tempReading = analogRead(tempPin);
// This is OK
double tempK = log(10000.0 * ((1024.0 / tempReading - 1)));
tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK )) * tempK );       //  Temp Kelvin
float tempC = tempK - 273.15;            // Convert Kelvin to Celcius
float tempF = (tempC * 9.0)/ 5.0 + 32.0; // Convert Celcius to Fahrenheit
/*  replaced
  float tempVolts = tempReading * 5.0 / 1024.0;
  float tempC = (tempVolts - 0.5) * 10.0;
  float tempF = tempC * 9.0 / 5.0 + 32.0;
*/
// Display Temperature in C
lcd.setCursor(0, 0);
lcd.print("Temp         C  ");
// Display Temperature in F
//lcd.print("Temp         F  ");
lcd.setCursor(6, 0);
// Display Temperature in C
lcd.print(tempC);   delay(2000);
// Display Temperature in F
lcd.print("Temp         F  ");   lcd.setCursor(6, 0);
// Display Temperature in F
lcd.print(tempF);
delay(2000);
}
Que una vez cargado el código fuente y funcionando tenemos: