#include <LiquidCrystal.h>
double refV = 5;
double tL = 25;
double tH = tL + 1;
const int button6 = 6; // aumentar temperatura
const int button7 = 7; // diminuir temperatura
const float BETA = 3950; // Beta do termistor
int button6state = 0;
int button7state = 0;
LiquidCrystal lcd( 12, 11, 5, 4, 3, 2 ); // RS, E, D4 - D7
void setup(){
// GPIO:
pinMode( button6, INPUT );
pinMode( button7, INPUT );
pinMode( 10, OUTPUT );
pinMode( 13, OUTPUT );
// Configuração do ADC:
analogReference( DEFAULT ); // the default analog reference of 5 volts
// LCD:
lcd.begin(16,2);
lcd.setCursor(0,0); // linha 1, coluna 1
lcd.print(tL);
lcd.print(" to ");
lcd.print(tH);
// Porta serial:
Serial.begin(9600);
Serial.print("tL is: ");
Serial.print("\t");
Serial.println(tL);
Serial.print("tH is: ");
Serial.print("\t");
Serial.println(tH);
Serial.print("temp(C)");
Serial.print("\t");
Serial.println("on/off");
Serial.println("________________");
Serial.println("Início das leituras: ");
}
void loop(){
// ---------------------------------------------------------------------------
int acc = analogRead( 0 );
delay( 100 );
float tempC = 1 / (log(1 / (1023. / acc - 1)) / BETA + 1.0 / 298.15) - 273.15;
if ( tempC < tL ){
digitalWrite( 13, HIGH );
Serial.print( tempC );
Serial.print( "\t" );
Serial.println( "1" );
delay( 100 );
}
else{
digitalWrite( 13, LOW );
Serial.print( tempC );
Serial.print( "\t" );
Serial.println( "0" );
delay( 100 );
}
lcd.setCursor( 0, 1 ); // linha 2, coluna 1
lcd.print( tempC );
// ---------------------------------------------------------------------------
button6state = digitalRead( button6 );
if ( button6state == HIGH ){
tL = tL + 0.5;
tH = tH + 0.5;
lcd.setCursor(0,0);
lcd.print(tL);
lcd.print(" to ");
lcd.print(tH);
delay( 500 );
}
button7state = digitalRead( button7 );
if ( button7state == HIGH ){
tL = tL - 0.5;
tH = tH - 0.5;
lcd.setCursor(0,0);
lcd.print(tL);
lcd.print(" to ");
lcd.print(tH);
delay( 500 );
}
digitalWrite( button6, LOW );
digitalWrite( button7, LOW );
}