Calculate Average Reading from TMP36

// Define the number of samples to keep track of.  The higher the number,
// the more the readings will be smoothed, but the slower the output will
// respond to the input.  Using a constant rather than a normal variable lets
// use this value to determine the size of the readings array.
const int numReadings = 100;

int readings[numReadings];      // the readings from the analog input
int index = 0;                  // the index of the current reading
int total = 0;                  // the running total
int average = 0;                // the average
int temperature = 0;
int temperaturePin = A0;

void setup()
{
  // initialize serial communication with computer:
  Serial.begin(9600);                  
  // initialize all the readings to 0:
  for (int thisReading = 0; thisReading < numReadings; thisReading++)
    readings[thisReading] = 0;          
}

void loop() {
  
  // subtract the last reading:
  total= total - readings[index];        
  // read from the sensor:  
  temperature = getVoltage(temperaturePin);  //getting the voltage reading from the temperature sensor
  readings[index] = temperature;
  // add the reading to the total:
  total= total + readings[index];      
  // advance to the next position in the array:  
  index = index + 1;                    

  // if we're at the end of the array...
  if (index >= numReadings)              
    // ...wrap around to the beginning:
    index = 0;                          

  // calculate the average:
  average = total / numReadings;        
  
//  average = temperature; 
  // temperature = getVoltage(temperaturePin);  //getting the voltage reading from the temperature sensor
  temperature = (temperature - 0.42) * 100;  // converting from 10 mv per degree with 500 mV offset
  temperature = (((temperature*1.8)+32)-6.5); // convert c to f
  
  // send it to the computer as ASCII digits
  Serial.println(average);  

  Serial.print(temperature);                     //printing the result
  Serial.println(" f");
  delay(1000);   

}
/*
 * getVoltage() - returns the voltage on the analog input defined by
 * pin
 */
float getVoltage(int pin){
 return (analogRead(pin) * .004882814); //converting from a 0 to 1023 digital range
                                        // to 0 to 5 volts (each 1 reading equals ~ 5 millivolts
}

[code]

[/code]