Is there a limit to the ADC? I had considered just using the MAX6755 I have, but wasn't sure if I was perhaps just missing something simple.
Code:
// which analog pin to connect
#define THERMISTORPIN A0
// resistance at 25 degrees C
#define THERMISTORNOMINAL 45000
// temp. for nominal resistance (almost always 25 C)
#define TEMPERATURENOMINAL 25
// The beta coefficient of the thermistor (usually 3000-4000)
#define BCOEFFICIENT 3148.36
// the value of the 'other' resistor
#define SERIESRESISTOR 147000
float getSteinhartCelsius(float resistance) {
/**
Returns the steinhart calculation
*/
float steinhart;
steinhart = resistance / THERMISTORNOMINAL; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)
steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // Invert
steinhart -= 273.15; // convert to C
return steinhart;
}
float analog_average_read()
{
/**
Reads a number of samples and averages those samples.
*/
float average = 0.0f;
average = analogRead(THERMISTORPIN);
average = (1023 / average) - 1;
average = SERIESRESISTOR / average;
return asF(getSteinhartCelsius(average));
}