Hola buenas, tengo un problema de software al que no le encuentro solución, quizá alguien me pueda ayudar... Tengo conectado a un pin análogico un sensor de temperatura LM35, al realizar la lectura funciona bien hasta que llega hasta 31,7 grados, a partir de aquí empieza a bajar con un signo menos delante, por ejemplo lo que tendría que ser 33 grados sale -29 grados. Os copio lo que me da:
Tiempo transcurrido desde el inicio de la medicion 0:1:18
Posiciones sobre 1024 Bits: T1, 57 ;T2, 544 ;LUZ, 57
T1 28.32 Grados Celsius
Tiempo transcurrido desde el inicio de la medicion 0:1:25
Posiciones sobre 1024 Bits: T1, 61 ;T2, 544 ;LUZ, 56
T1 29.79 Grados Celsius
Tiempo transcurrido desde el inicio de la medicion 0:1:32
Posiciones sobre 1024 Bits: T1, 63 ;T2, 544 ;LUZ, 57
T1 31.25 Grados Celsius
Tiempo transcurrido desde el inicio de la medicion 0:1:39
Posiciones sobre 1024 Bits: T1, 65 ;T2, 544 ;LUZ, 57
T1 31.74 Grados Celsius
Tiempo transcurrido desde el inicio de la medicion 0:1:46
Posiciones sobre 1024 Bits: T1, 68 ;T2, 544 ;LUZ, 57
T1 -30.31 Grados Celsius
Tiempo transcurrido desde el inicio de la medicion 0:1:53
Posiciones sobre 1024 Bits: T1, 71 ;T2, 545 ;LUZ, 57
T1 -29.33 Grados Celsius
Tiempo transcurrido desde el inicio de la medicion 0:2:0
Posiciones sobre 1024 Bits: T1, 73 ;T2, 545 ;LUZ, 57
T1 -28.36 Grados Celsius
Como se puede ver la temperatura se hace negativa pero la posición sobre 1024 Bits que da el pin análogico sigue subiendo hacia arriba, a continuación muestro la formula que tengo en el código para transformar la posición en temperatura:
Serial.print ("T1");
Serial.print (" ");
Serial.print (float(analogRead(0)5100)/1024);
Serial.print (" ");
Serial.print ("Grados Celsius");
Siendo la posición (analogRead(0)) siempre positiva (0 para 0v y 1024 para 5v) y todos los valores de la formula tambíen positivos no entiendo como puede salir un float negativo. Si alguien puede saber alguna solución se lo agradeceria.