Erratic Readings from TMP36 Temperature Sensor

I'm trying to add a TMP36 sensor to my project, based on the examples on ladyada.net, but the results that I get seem to be completely bogus. For example, these are my most recent readings...

381
2.82V power supply
0.44 volts
-5.63 degress C
21.87 degress F
202
5.32V power supply
0.84 volts
34.21 degress C
93.57 degress F
183
5.88V power supply
0.92 volts
42.38 degress C
108.28 degress F
180
5.97V power supply
0.94 volts
43.92 degress C
111.05 degress F
179
6.01V power supply
0.94 volts
44.44 degress C
111.99 degress F
179
6.01V power supply
0.94 volts
44.44 degress C
111.99 degress F
179
6.01V power supply
0.94 volts
44.44 degress C
111.99 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
179
6.01V power supply
0.94 volts
44.44 degress C
111.99 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
177
6.07V power supply
0.96 volts
45.51 degress C
113.92 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
177
6.07V power supply
0.96 volts
45.51 degress C
113.92 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
179
6.01V power supply
0.94 volts
44.44 degress C
111.99 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
177
6.07V power supply
0.96 volts
45.51 degress C
113.92 degress F
178
6.04V power supply
0.94 volts
44.38 degress C
111.89 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.95 volts
44.97 degress C
112.95 degress F
178
6.04V power supply
0.96 volts
45.56 degress C
114.01 degress F
177
6.07V power supply
0.96 volts
45.51 degress C
113.92 degress F

These were generated using some other code I found:

//TMP36 Pin Variables
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
                        //the resolution is 10 mV / degree centigrade with a
                        //500 mV offset to allow for negative temperatures

#define BANDGAPREF 14   // special indicator that we want to measure the bandgap

/*
 * setup() - this function runs once when you turn your Arduino on
 * We initialize the serial connection with the computer
 */
void setup()
{
  Serial.begin(9600);  //Start the serial connection with the computer
                       //to view the result open the serial monitor 
  delay(500);
}
 
void loop()                     // run over and over again
{
  // get voltage reading from the secret internal 1.05V reference
  int refReading = analogRead(BANDGAPREF);  
  Serial.println(refReading);
  
  // now calculate our power supply voltage from the known 1.05 volt reading
  float supplyvoltage = (1.05 * 1024) / refReading;
  Serial.print(supplyvoltage); Serial.println("V power supply");
  
  //getting the voltage reading from the temperature sensor
  int reading = analogRead(sensorPin);  

  // converting that reading to voltage
  float voltage = reading * supplyvoltage / 1024; 
 
  // print out the voltage
  Serial.print(voltage); Serial.println(" volts");
 
  // now print out the temperature
  float temperatureC = (voltage - 0.5) * 100 ;   //converting from 10 mv per degree wit 500 mV offset
                                               //to degrees ((volatge - 500mV) times 100)
  Serial.print(temperatureC); Serial.println(" degress C");
 
  // now convert to Fahrenheight
  float temperatureF = (temperatureC * 9 / 5) + 32;
  Serial.print(temperatureF); Serial.println(" degress F");
 
  delay(1000);                                     //waiting a second
}

But the temperature in my house is definitely NOT over 100F, more like 70F. Granted, this was also just when using Analog Input 4... when I try 0 or 1, the readings are even weirding, stating that it's more like 300F!!

I originally had a setup with a display and an ethernet shield hooked up, but I took all that off to see if they were the problem and same deal... It's currently hooked up with only the USB connection for power (I'm using a Duemilanove with a 328P chip) and I've even tried two separate TMP36 chips.

Any ideas what could be the problem?? Could my Arduino board be messed up?

Ok, I get that they are consistent after the startup time... but they are still actually bogus. As I said, they readings are showing around 130 degrees F, when it's inside at a much lower 70 degrees F. also, I get vastly different readings depending on with Analog Input I use! For example, those readings are using pin 4, but on pin 0 it reads 240 degrees F!! Definitely not correct.

The circuit is powered directly off of USB (as stated being acceptable by Arduino) and the TMP36 is connected exactly as shown here: Temperature sensor tutorial - Using the TMP36 / LM35

There is nothing else. It is not sitting next to a lamp, iron or any other heat source. I have even moved it around my house to various locations, but the readings are consistently wrong.

I even get very similar (wrong) readings when using the code direct from the link above:

//TMP36 Pin Variables
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
                        //the resolution is 10 mV / degree centigrade with a
                        //500 mV offset to allow for negative temperatures
 
/*
 * setup() - this function runs once when you turn your Arduino on
 * We initialize the serial connection with the computer
 */
void setup()
{
  Serial.begin(9600);  //Start the serial connection with the computer
                       //to view the result open the serial monitor 
}
 
void loop()                     // run over and over again
{
 //getting the voltage reading from the temperature sensor
 int reading = analogRead(sensorPin);  
 
 // converting that reading to voltage, for 3.3v arduino use 3.3
 float voltage = reading * 5.0 / 1024; 
 
 // print out the voltage
 Serial.print(voltage); Serial.println(" volts");
 
 // now print out the temperature
 float temperatureC = (voltage - 0.5) * 100 ;  //converting from 10 mv per degree wit 500 mV offset
                                               //to degrees ((volatge - 500mV) times 100)
 Serial.print(temperatureC); Serial.println(" degress C");
 
 // now convert to Fahrenheight
 float temperatureF = (temperatureC * 9 / 5) + 32;
 Serial.print(temperatureF); Serial.println(" degress F");
 
 delay(1000);                                     //waiting a second
}

Which is all of 10 lines. Nothing really to go wrong AND directly from a tutorial where it's shown working.