TMP36 sensor reading low value

Playing with my first arduino projects and have had LEDs flashing and sending text over serial for debugging.

I've now started again with a TMP36 temperature sensor (removed all the LEDs etc. so I've got a blank canvas) and have used the following basic sample code to get it running:

//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;
voltage /= 1024.0;
// 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(" degrees C");
// now convert to Fahrenheight

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF); Serial.println(" degrees F");
delay(1000); //waiting a second
}

The problem I'm having is that the temperature reads around -25 degrees C even though I'm running it at room temperature around +25 degrees. When I warm up the sensor it seems to increase ok in what seems to be a fairly linear way. With a hair dryer warming it it goes up to around +20 degrees, and when I turn the hair dryer off it slowly drops back down to -25.

I've tried switching from +5v to +3.3v using the relevant changes in the code to specify an external AREF but that doesn't seem to make a difference to the temperature.

It's possible I connected the pins in reverse the first time I plugged it in. Is that likely to have damaged the sensor?

Any help appreciated :slight_smile:

is the offset right?

Can you post (partial) output with all 'steps'?