Sensor de Temperatura LM35 datos erroneos

Hola a todos,

Estoy empezando a hacer unas pruebas un MEGA 2560, y un sensor de temperatura LM35

Estoy conectando la pata de corriente positiva a la pata de datos con una resistencia de 10K

el codigo es el siguiente:


int pin = 0; // seleccion del pin de entrada analogica
int tempc = 0,tempf=0; // variables de temperatura
int samples[5]; // variable para guardar el numero de iteraciones para mejorar la medicion
int maxi = -100,mini = 100; // Limites de temperatura
int i;// variable de iteraciones

void setup()
{
Serial.begin(9600); // inicia la comuncación serial
}

void loop()
{

for(i = 0;i<=4;i++){ // realizara 5 iteraciones

samples = ( 5.0 * analogRead(pin) * 100.0) / 1024.0; //iteraciones entre resolucion
_ tempc = tempc + samples*;_
_
delay(100); //retardo para realizar de nuevo el muestreo*_
}
tempc = tempc/5.0; // mejoramos la precision
tempf = (tempc * 9)/ 5 + 32; // conversor a grados fahrenheit
if(tempc > maxi) {maxi = tempc;} // max temperatura
if(tempc < mini) {mini = tempc;} // min temperatura
Serial.print(tempc,DEC); //variable de temperatura
Serial.print(" Celsius, "); // impresion de temperatura en Celsius
Serial.print(tempf,DEC); //variable de temperatura
Serial.print(" Fahrenheit -> "); // impresion de temperatura en Fahrenheit
Serial.print(maxi,DEC);
Serial.print(" Max, ");
Serial.println(mini,DEC);
tempc = 0; //inicialisa la variable con valor de 0
delay(100); // retardo para iniciar de nuevo el proceso
}
********************************************************************************************
Los resultados de la comunicacion serial son los siguientes:
********************************************************************************************
78 Celsius, 172 Fahrenheit -> 78 Max, 77
78 Celsius, 172 Fahrenheit -> 78 Max, 77
78 Celsius, 172 Fahrenheit -> 78 Max, 77
78 Celsius, 172 Fahrenheit -> 78 Max, 77
78 Celsius, 172 Fahrenheit -> 78 Max, 77
78 Celsius, 172 Fahrenheit -> 78 Max, 77
78 Celsius, 172 Fahrenheit -> 78 Max, 77
78 Celsius, 172 Fahrenheit -> 78 Max, 77
********************************************************************************************
Lo que he estado observando es que:
1. Los valores son totalmente erroneos
2. Cuando meto el sensor al hielo, sube la temperatura, y cuando le aplico calor baja, osea que se comporta al reves, cabe señalar que el sensor LM35 es un sensor para intemperie.
Ojala y me pudieran apoyar, ya que he probado muchas maneras y he revisado ejemplos y no he podido hacer que me de una cifra real de la lectura
Le agradezco
Saludos,

no se si afectara mucho al resultado pero la variable samples deberia ser float si trabajas con numeros tipo 1024.0 o 100.0 (tambien defines un array de 5 elementos que no usas,supongo que la idea era almacenar las 5 medidas en samples[0],samples[1],etc).Tambien he visto algun ejemplo por ahi de conexion y no usan resistencia,conectan un terminal a +5 v,el Vout (el del centro ,creo) a la entrada analogica y el otro a gnd(aqui lo explican bien: http://fpfaffendorf.wordpress.com/2013/07/27/lm35-sensor-analogo-de-temperatura-arduino/

Buenas tardes, y gracias por tu contestacion,

He probado con el ejemplo que me has enviado:

  1. He notado que el valor en Celsius es muy alto.
  2. Al momento de aplicar calor, el valor baja y al aplicar frio, el valor sube, lo cual se esta comportando al reves.

Codigo:


byte PIN_SENSOR = 0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
float C = (5.0 * analogRead(PIN_SENSOR) * 100.0) / 1024;
float F = C * 1.8;
Serial.println ("Temperatura: ");
Serial.print (C);
Serial.println (" C");
Serial.print (F);
Serial.println (" F");
delay(5000);
}


Y el resultado es este:


Temperatura:
74.71 C
134.47 F
Temperatura:
74.71 C
134.47 F
Temperatura:
75.20 C
135.35 F