#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int LM35 = A0; // Define o pino que lera a saída do LM35
float temperatura; // Variável que armazenará a temperatura medida
byte set_point = 10;
//Função que será executada uma vez quando ligar ou resetar o Arduino
void setup()
{
Serial.begin(9600); // inicializa a comunicação serial
lcd.init();
pinMode(13, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
}
//Função que será executada continuamente
void loop()
{
temperatura = (float(analogRead(LM35)) * 5 / (1023)) / 0.01;
delay(100);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("TEMP:");
lcd.setCursor(8, 0);
lcd.print(temperatura);
lcd.setCursor(14, 0);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("VALOR SET:");
if (set_point < 100)
{
lcd.setCursor(10, 1);
lcd.print(set_point);
lcd.setCursor(12, 1);
lcd.print(" ");
}
else
{
lcd.setCursor(10, 1);
lcd.print(set_point);
}
if (set_point < 10)
{
lcd.setCursor(10, 1);
lcd.print(set_point);
lcd.setCursor(11, 1);
lcd.print(" ");
}
else
{
lcd.setCursor(10, 1);
lcd.print(set_point);
}
///////////////selação de valor///
if ( digitalRead(2) == 0 && set_point < 151)
{
set_point++;
delay (20);
}
if ( digitalRead(3) == 0 && set_point > 0 )
{
set_point--;
delay (20);
}
////////////controle//////////////////
if (temperatura >= set_point) // if(temperatura <= set_point)
{
digitalWrite(13, 1);
delay (20);
}
else
{
digitalWrite(13, 0);
delay (20);
}
}