#include <SevSeg.h>
SevSeg sevSeg;
uint8_t segValues[10]={0X3f,0X06,0X5B,0X4F,0X66,0X6D,0X7C,0X07,0X7F,0X6F};
const float BETA = 3950;
const int RelayLo=13;
const byte RelayHi=A5;
//const byte buzzer=A1;
void setup() {
byte segPins[]={2,3,4,5,6,7,8,9};
byte dispPins[]={10,11,12};
sevSeg.begin(COMMON_CATHODE,3,dispPins,segPins,false,false,false,true);
pinMode(RelayLo, OUTPUT);
pinMode(RelayHi, OUTPUT);
//pinMode(buzzer, OUTPUT);
}
void loop() {
int sampleValue=analogRead(A0);
float celsius = 1 / (log(1 / (1023. / sampleValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
int temp=int(celsius+0.5);// to round the temperature
if(temp>=23)
{
digitalWrite(RelayLo, HIGH);
digitalWrite(RelayHi, LOW);
//tone(buzzer,262,50);
}
else
{
digitalWrite(RelayLo, LOW);
digitalWrite(RelayHi, HIGH);
}
int ones=temp%10;
int tens=temp/10;
//int hundreds=celsius/100;
sevSeg.setSegmentsDigit(1,segValues[ones]);//to
sevSeg.setSegmentsDigit(0,segValues[tens]);
sevSeg.setSegmentsDigit(2,0x63);
sevSeg.refreshDisplay();
}