#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
const float BETA = 3950;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
byte Char[] = {
0b01110,
0b11111,
0b11111,
0b11111,
0b01110,
0b00000,
0b00000,
0b00000,
};
byte Char1[] = {
0b00100,
0b01010,
0b00100,
0b11111,
0b00100,
0b00100,
0b01010,
0b10001,
};
byte Char2[] = {
0b00000,
0b01010,
0b01010,
0b01010,
0b00000,
0b10001,
0b01010,
0b00100,
};
byte Char3[] = {
0b10001,
0b01010,
0b11011,
0b01010,
0b00000,
0b00100,
0b01010,
0b10001,
};
void loop()
{
lcd.home();
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
lcd.home();
lcd.print("Temperature: ");
lcd.print(celsius);
lcd.print(char(223));
lcd.println("C");
delay(500);
lcd.clear();
lcd.createChar(0, Char);
lcd.home();
lcd.write(0);
delay(500);
lcd.clear();
lcd.createChar(0, Char1);
lcd.home();
lcd.write(0);
delay(500);
lcd.clear();
lcd.createChar(0, Char2);
lcd.home();
lcd.write(0);
delay(500);
lcd.clear();
lcd.createChar(0, Char3);
lcd.home();
lcd.write(0);
delay(500);
lcd.clear();
}