My Uno keeps returning the following:
Temp reading = 147 - 0.47 volts
-2.63 degress C
27.27 degress F
This is in my house at about 70F.
Here is my code:
//TMP36 Pin Variables
int tempPin = A0; //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
int tempReading; // the analog reading from the sensor
void setup(void) {
// We'll send debugging information via the Serial monitor
Serial.begin(9600);
// If you want to set the aref to something other than 5v
analogReference(EXTERNAL);
}
void loop(void) {
tempReading = analogRead(tempPin);
Serial.print("Temp reading = ");
Serial.print(tempReading); // the raw analog reading
// converting that reading to voltage, which is based off the reference voltage
float voltage = tempReading * aref_voltage / 1024;
// print out the voltage
Serial.print(" - ");
Serial.print(voltage); Serial.println(" volts");
// now print out the temperature
float temperatureC = (voltage - .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);
}
My setup is identical to this:
http://www.ladyada.net/wiki/lib/exe/fetch.php?hash=8d4837&w=514&h=592&media=http%3A%2F%2Fwww.ladyada.net%2Fimages%2Flogshield%2Fsensorwiring.gifminus the photo resistor.
I've tried everything, no idea why the voltage returned isn't what it should be.
I purchased 12 of these sensors and have tried 3. All with the same results.