#define THERMISTORPIN A0 #define THERMISTORNOMINAL 11000 #define TEMPERATURENOMINAL 25 #define NUMSAMPLES 5 #define BCOEFFICIENT 3950 #define SERIESRESISTOR 11000 int8_t i; float average; int temp; uint16_t samples[NUMSAMPLES]; float steinhart; int data; void setup() { pinMode(12,OUTPUT); pinMode(11,OUTPUT); pinMode(13,OUTPUT); pinMode(10,OUTPUT); analogReference(EXTERNAL); Serial.begin(9600); Serial.println("done"); } void loop() { if(Serial.available()>0){ Serial.println("Conected"); data=Serial.read(); Serial.println(data,DEC); if(data==0 || data==6){ digitalWrite(13,HIGH); label1: for (i=0; i< NUMSAMPLES; i++) { samples[i] = analogRead(THERMISTORPIN); delay(10); } average = 0; for (i=0; i< NUMSAMPLES; i++) { average += samples[i]; } Serial.println(average,DEC); delay(1000); average /= NUMSAMPLES; average = 1123 / average - 1; average = SERIESRESISTOR / average; Serial.print("average is "); Serial.println(average,DEC); steinhart = average / THERMISTORNOMINAL; steinhart = log(steinhart); steinhart /= BCOEFFICIENT; steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); steinhart = 1.0 / steinhart; steinhart -= 273.15; temp = steinhart; Serial.println(temp,DEC); if(temp>=40) { digitalWrite(12,HIGH); digitalWrite(11,LOW); digitalWrite(10,HIGH); delay(500); digitalWrite(10,LOW); } else { digitalWrite(11,HIGH); digitalWrite(12,LOW); digitalWrite(10,LOW); } data=Serial.read(); delay(1000); if(data==1 || data==7){ digitalWrite(12,LOW); digitalWrite(11,LOW); digitalWrite(13,LOW); digitalWrite(10,LOW); goto label; } goto label1; } label : Serial.println("Start Again"); } }