Lecturas inapropiadas del sensor de pulso y temperatura (LM35)

Tengo bastantes problemas con un sensor de temperatura LM25. Las lecturas son demasiado altas (90-120°C) para la temperatura ambiente. He intentado las siguientes cosas para obtener el resultado esperado, pero ninguna parece funcionar:

  • Agregar un condensador de filtro a los rieles de alimentación del LM35 para estabilizar la lectura de temperatura.

La fluctuación de la temperatura de salida puede deberse al ruido de la fuente de alimentación, por lo que es mejor utilizar un condensador electrolítico en la fuente de alimentación, es decir, conectado a Vcc y GND de LM35. (Yo agregué 10 uF)

  • Agregar resistencia entre el pin de salida y el pin GND De acuerdo con la hoja de datos del LM35, tiene una baja capacidad de hundimiento. Como resultado, su salida se vuelve más sensible a la interferencia electromagnética. La resistencia de 1K o 2K entre la salida y GND puede resolver este problema hasta cierto punto y también resolver errores de autocalentamiento.

  • Tomando lectura promedio en lugar de lectura única. La fluctuación o la deriva son uno de los principales problemas del sensor Arduino. Una forma de reducir la fluctuación es tratar de calcular la lectura promedio en lugar de una sola lectura.

  • Minimiza el error. Cuando usamos la referencia predeterminada, es decir, una referencia de 5 V en la entrada analógica, es menos sensible a la diferencia de voltaje. En esta referencia, Arduino puede mapear el voltaje de entrada de 5V en 1024 pasos, es decir, 0-1023. Esto significa resolución a 5V = 5/1023 = 4,88 x 10-3V = 4,88mV. Entonces, si usamos la referencia analógica predeterminada de 5V, la desviación de temperatura mínima que Arduino puede detectar es de 0.50C. Si usamos el voltaje de referencia predeterminado de Arduino, terminaremos agregando un error adicional de 0.50C. Este error se puede minimizar seleccionando el valor de referencia adecuado para el Arduino. Usé la referencia interna de 1.1V para el Arduino para que la desviación mínima de temperatura que el Arduino puede medir mejore.

Al final, incluso compré un sensor nuevo, suponiendo que el primero estaba defectuoso, pero no funcionó. Todavía estoy enfrentando el mismo problema.

#meghashyam parab, 90 °C significa una lectura del multímetro de 0,9 V (ver mi respuesta a continuación) Confirme si realmente obtuvo 0,9 V. Salud.
No he usado el LM35 antes, pero parece que se está comportando de la misma manera que el TMP36 para mí. Ver esto: github.com/Joe0x7F/TMP36

Respuestas (2)

La etapa de salida del LM35 es famosa por ser un poco cambiante... en mi experiencia, a menudo tiende a oscilar, si la línea de señal es más larga de 5-10 cm (típico si se monta externamente). También es algo débil, como ya notaron.

Mire con un alcance la señal de salida, si ve un diente de sierra, el LM35 está oscilando debido a la carga capacitiva excesiva (el cable de salida se ve como una capacitancia). Eventualmente puede romperse, hiciste bien en probar con otro.

Hay trucos para hacer si funciona un poco mejor, pero la solución real es usar otro tipo de sensor con una mejor capacidad de manejo o amortiguarlo (un seguidor de voltaje simple es suficiente) antes de ingresar al cable largo.

  1. LM35 no debería dar una lectura tan ridículamente inexacta. ¡La siguiente especificación muestra qué tan preciso (+- 0.5°C) es!

especificación lm35


  1. ¡Quizás tu cálculo es dudoso! :)

Déjame comprobar tu cálculo. Supongamos que lo configura como en la imagen de la izquierda, sin ninguna resistencia R1, y simplemente usa cualquier multímetro digital económico para medir la salida.

Ahora déjame trabajar a partir de tu resultado de 90°C.

(a) Results = 90°C.

(b) Scale factor = 10mV/°C

(c) So raw reading in mV should be (90°C) * (10mV/°C) ~= 900mV ~= 0.9V.

¿Estás seguro de que la lectura de tu multímetro es tan alta como 0.9V? De acuerdo con la hoja de datos, 25°C debería dar ~=250mA ~= 0.25V.