el_supremo:
float averageTemp; // create a float to hold running average
for (int i = 1; i < 1000; i++) // start at 1 so we dont divide by 0
averageTemp += ((Temp - averageTemp)/(float)i); // get next sample, calculate running average
This code doesn't do anything useful. The declaration of averageTemp will cause it to be initialized with a random value which makes the for loop start its "running average" with a random value. The for loop uses the same value of Temp every time so it is not generating a running average. Pete
How about this,
I just split it back into two classes so "Temp" would change on every evaluation.
/*
- Thermistor Function, Read thermistor and return a value in deg. F
/
double Thermister(int RawADC) {
double Temp;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) Temp );
Temp = Temp - 273.15; // Convert Kelvin to Celcius
Temp = (Temp * 9.0)/ 5.0 + 32.0; // Convert Celcius to Fahrenheit
return Temp;
}/*
- avrage temp sensor reading
*/
float AvrageTemp(int analog_pin){
float averageTemp; // create a float to hold running average
for (int i = 1; i < 1000; i++) // start at 1 so we dont divide by 0
averageTemp += ((Thermister(analog_pin) - averageTemp)/(float)i); // get next sample, calculate running average
return averageTemp; // return average temperature reading
}