Estoy montando un control de temperatura para el frigorifico de una autocaravana. Todo funciona bien, el unico problema es con la alimentacion.
Utilizo un lcd 2x16 con i2c, y un lm35 para medir la tempratura. Haciendo pruebas me he dado cuenta que la temperatura que muestra el lcd siempre es superior a la que en realidad hay en la habitacion, unos 4 grados. Al sistema le añadi el apagado automatico de la luz de fondo del lcd cuando pasan 5 segundos sin tocarse un boton para ahorra energia. Al comprobar por el monitor serie la temperatura que lee con el lcd sin iluminar, bingo, es correcta. Imagino que cuando el lcd esta ilumnado la tension en el lm35 cae y ya no mide bien.
El arduino lo tengo alimentado por un transformador tipo movil, de 9v y 1A. y tanto el lcd como el lm35, 4 pulsadores y un led de control, estan conectados a la salida 5V del aurduino.
Se me ocurren varias cosas pero hasta que no nos compartas como esta todo conectado, y más aun, como lo montaste en tu frigorifico, es dificil ayudarte. Algunas consideraciones:
El lm35 (dependiendo del modelo) anda con 4v-30v, por lo que me cuesta pensar que ese puede ser el problema, pero podrias probar conectarlo a 9v en lugar de los 5v del Arduino (previo verificar tu modelo y caracteristicas).
Lo segundo es la ubicación. El lm35 es más un medidor de termperatura de circuito. Hay puntas para heladeras que hacen mejor su trabajo. Pero si aun asi deseas probarlo, deberias aislarlo lejos del resto del circuito ya que el calor de otros componentes puede hacerte una diferencia. En especial, si está cerca del LCD, el backlight produce mucho calor.
Por ultimo, tu dices:
Imagino que cuando el lcd esta ilumnado la tension en el lm35 cae y ya no mide bien.
Te recomiendo que en lugar de "imaginar" midas con un tester el voltaje y proveas de información exacta asi recibirás mejor ayuda.
Del lm35 que tengo solo te puedo decir que debajo de lm35 tiene las letras DZ.
Ahora mismo el circuito esta montado en protoboard, el lm35 no esta cerca del lcd ni de ningun otro componente que se caliente.
Respecto al tester, totalmente deacuerdo, pero lo tengo sin pila y no puedo comprarla hoy, mañana lo revisare.
Por el momento lo he solucionado de la siguiente manera: antes de leer la el valor del lm35 apago la luz de fondo del lcd, despues compruebo si estaba encendida previamente y actuo en consecuencia. Pero no creo que sea la mejor opcion.
La luz del backlight consume mucha corriente y lo que ocurre es que la tensión de salida cae debido a dicho consumo y como no verificas la tensión de referencia al hacer la conversión sigues creyendo que lees valores del LM35 vs 5V y si puedieras medir verías que esta en 4.85 por dar un valor (algo que hay que verificar).
La conclusión es que si desconectas el backlight resulta que se lees bien la temperatura porque no hay caíada.
Una posible solución sería: usar una fuente extra que alimenta el backlight por fuera del arduino y eso no alteraría la respuesta del LM35.