#include <LiquidCrystal.h> // Inclui a biblioteca do LCD
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; // Pinos do LCD
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int setpoint=0;
int sensortemperatura=0;
int histerese=10;
int limitesuperior=0;
int limiteinferior=0;
void setup() {
// put your setup code here, to run once:
pinMode(13, OUTPUT); //led verde
pinMode(A5, OUTPUT); //led amarelo
pinMode(10, OUTPUT); //led vermelho
//inicialização das variáveis
digitalWrite(A5,0);
digitalWrite(10, 0);
digitalWrite(13, 0);
}
void loop() {
// put your main code here, to run repeatedly:
//utilizando variável analógica de entrada, escrevendo no lcd (variando potenciometro)
setpoint = analogRead(A0); //potenciometro setpoint
sensortemperatura = analogRead(A1); //potenciometro sensor
sensortemperatura = map(sensortemperatura,0,1023,0,300); //(valor a ser variado, range inicial bit, range final bit, range inicial decimal, range final decimal)
setpoint = map(setpoint,0,1023,0,300); //(valor a ser variado, range inicial bit, range final bit, range inicial decimal, range final decimal)
lcd.clear();
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("SETPOINT:");
lcd.setCursor(10,0);
lcd.print(setpoint);
lcd.setCursor(0,1);
lcd.print("TEMPERATURA:");
lcd.setCursor(13,1);
lcd.print(sensortemperatura);
delay(500);
//Se temperatura > setpoint+histerese, desliga o forno
limitesuperior = setpoint + histerese;
limiteinferior = setpoint - histerese;
if(sensortemperatura >= limitesuperior){
digitalWrite(10, LOW);
digitalWrite(A5, LOW);
digitalWrite(13, HIGH);
}
if (sensortemperatura <= limiteinferior){
digitalWrite(10,HIGH);
digitalWrite(A5, LOW);
digitalWrite(13, LOW);
}
}