#include <LiquidCrystal_I2C.h>
#define HOT 6
#define NORMAL 4
#define COLD 2
float celsius = 0;
float hotTemp = 26;
float coldTemp = 15;
const float BETA = 3950;
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Pomiar temp.");
lcd.setCursor(2, 1);
lcd.print(" ");
pinMode(HOT, OUTPUT);
pinMode(NORMAL, OUTPUT);
pinMode(COLD, OUTPUT);
Serial.begin(9600);
}
void loop() {
lcd.clear();
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) -
273.15;
Serial.print("Temperatura: ");
Serial.print(celsius);
Serial.println(" °C" );
lcd.print("Temp: ");
lcd.print(celsius);
lcd.print(" st.C");
delay(1000);
if ( celsius < coldTemp )
{
digitalWrite(COLD, HIGH);
lcd.setCursor(0, 1);
lcd.print("Zimno!");
delay(1000);
digitalWrite(COLD, LOW);
}
else if ( celsius > coldTemp && celsius <= hotTemp )
{
digitalWrite(NORMAL, HIGH);
lcd.setCursor(0, 1);
lcd.print("W sam raz!");
delay(1000);
digitalWrite(NORMAL, LOW);
}
else
{
digitalWrite(HOT, HIGH);
lcd.setCursor(0, 1);
lcd.print("Cieplo!");
delay(1000);
digitalWrite(HOT, LOW);
}
}