Medición de temperatura usando LM35

Estoy haciendo un proyecto en beaglebone black y estoy conectando un sensor de temperatura LM35 ( hoja de datos ) a uno de los pines ADC del beaglebone. Según las hojas de datos de Beaglebone, el voltaje de referencia del ADC incorporado es de 1,8 V y tiene una resolución de 12 bits. Estoy usando la siguiente fórmula para el cálculo de la temperatura, pero obtengo los valores incorrectos.

T mi metro pag mi r a t tu r mi = 1.8 4095 × ( A D C R mi a d i norte gramo ) × 100

La lectura de ADC es 315 y la temperatura ambiente medida por el termómetro es de 31,2 grados centígrados y si aplico la temperatura anterior obtengo una lectura de 18,3 centígrados, lo cual no es correcto.

No estoy seguro de dónde me estoy equivocando, seguí este blog para hacer mi experimento.

¿Está seguro de que tiene el voltaje de referencia correcto?
Sí, es de 1,8 V, consulte el siguiente enlace learn.adafruit.com/…
315 está muy cerca de los mV que esperaría del ADC a 31,2 °C. ¿Estás seguro de que aún no está escalado?
Estoy de acuerdo con @SpehroPefhany en que probablemente ya esté escalado por su software. De lo contrario, verifique el voltaje en los terminales LM35 (tanto de suministro como de temperatura) con un DVM para verificar.
¿Cuál es el valor que está leyendo del ADC sin modificar: 315?
¿Qué quieres decir con "ADC sin modificar"?
@SpehroPefhany: verifiqué los voltajes con un multímetro. obtuve .350 V y ambos tenían razón, las lecturas habrían sido escaladas por el software y para calcular la temperatura solo tengo que dividir las lecturas por 10.
De acuerdo, lo pondré como respuesta y se puede cerrar.

Respuestas (2)

Parece que el software ya ha escalado la lectura, ya que la lectura de 315 ADC que está viendo es muy cercana a la 312 que esperaría con una temperatura ambiente de 31,2 °C (que, a su vez, parece de unos 10 °C demasiado caliente para la comodidad, pero esa es solo mi opinión).

Como descubrió, solo necesita dividir el número (que es el mV) por 10,0 (mV/°C) para obtener la temperatura en Celsius.

Solo mis 10 centavos...

LM35 le brinda una salida de 10 mV por grado centígrado

Puede conectar directamente la salida LM35 a la entrada BB AINx

es decir, 45 ° significa 450 mV en el pin AINx

Dado que este pin lee valores de 0 a 1800 mV en 4096 pasos (12 bits), tiene 2275 pasos por mV, pero cada grado significa 10 mV, por lo que tiene 22,75 pasos por mV diez.

Luego hay que dividir la lectura del ADC (cat /blablabla/AINx) por 22,75 para obtener directamente el valor decimal de grados centígrados usando un LM35 directamente.

es decir, script de prueba de shell simple:

temp='echo "$(cat /sys/dispositivos/plataforma/omap/tsc/ain1) / 22.75" | antes de Cristo'

echo La temperatura es $temp grados centígrados.

No se si es esto lo que buscas....

Fred.