Conversión de datos de temperatura sin procesar a Celcius L3GD20

3

Tengo un L3GD20 , que es un acelerómetro con sensor de temperatura incorporado , y quiero asegurarme de que mis matemáticas no sean extravagantes con respecto a la temperatura. No tengo mucha experiencia con el hardware integrado.

He estado jugando con el sensor de temperatura en el L3GD20. Según la hoja de datos, la temperatura se representa en el complemento de 8 bits 2, por lo que va de -128 a 127. Sin embargo, la hoja de datos incluye este pequeño fragmento:

Entonces, si estoy entendiendo la hoja de datos, el sensor de temperatura entregará un rango de temperatura de -40c a + 85c en el complemento de 8 bits 2. Entonces, un valor bruto de 127 (0x7F) del sensor correspondería a + 85c, y un valor bruto de -128 (0x80) correspondería a -40c. Por lo tanto, el espacio entre lecturas consecutivas (por ejemplo, 0x00 y 0x01) es de aproximadamente 0.5c. Llegué a esta conclusión al tomar el rango de temperatura y dividirlo por el rango de salida del sensor: (85 - (-40)) / (127 - (-128)).

Pero aquí está la parte donde mis matemáticas se vuelven borrosas. Si el rango de temperatura se mantuviera igual (125c de menor a mayor), pero se centrara en 0, pasaría de -62.5 a +62.5). Pero no lo hace. Va desde -40 a 85c. Por lo tanto, el rango de temperatura tiene un desplazamiento positivo de 22.5c. Pero como hay aproximadamente 2 códigos del sensor de temperatura para cada grado Celsius, un valor bruto de 0x00 del sensor correspondería a 11.25c, ¿correcto?

Versión TL; DR: tengo un sensor de temperatura que varía de -40c a + 85c, y devuelve la lectura en el complemento de 8 bits 2. Para obtener la temperatura real en grados Celsius, creo que necesito agregar 11.25 (o solo 11 para mantener las cosas simples) a la salida del sensor. ¿Es esto correcto?

    
pregunta CurtisHx

3 respuestas

6

Confunde las especificaciones de funcionamiento del chip con el formato de lectura.

Básicamente, las características eléctricas especifican el rango de temperaturas en el que se garantiza que el IC funciona correctamente. Esta es una característica física del dispositivo . Como dice la hoja de datos Operating temperature range , por ejemplo este es el rango de temperatura en el que se supone que el IC funciona correctamente. No tiene relación con el rango teórico del registro que contiene el valor de medición.

La lectura del sensor de temperatura se especifica como "-1 ° C / dígito". Por lo tanto, cada incremento de la salida de temperatura es igual a un grado C. Supongo que el valor de la lectura de la temperatura probablemente corresponda directamente con la temperatura real del dado IC en grados C, aunque debería verificarlo.

Las dos especificaciones no están relacionadas. Es como un velocímetro de coche. El velocímetro de mi auto sube a ~ 150 millas / hora. Sin embargo, no está destinado a ser conducido a esas velocidades. Como tal, el rango de lectura (0-150 Mph) excede significativamente las condiciones operativas previstas (~ 0 - ~ 85 Mph), ya que son características diferentes.

    
respondido por el Connor Wolf
0

Como lo sabía, L3GD20 es un dispositivo de giroscopio. Además, puede obtener la temperatura real de su registro, que es un mapa directamente a la temperatura centígrada. es decir, si lees 0x13 de Gyro, entonces la temperatura en este dispositivo es de 19 grados centígrados.

    
respondido por el DarkHorse
0

El dispositivo tiene un sensor de temperatura relativa con un coeficiente de temperatura negativo. Por lo tanto, solo se puede utilizar para detectar la variación de temperatura. Tenga en cuenta que no hay especificaciones de precisión de temperatura.

    
respondido por el Tee

Lea otras preguntas en las etiquetas