Salida de datos de 64 bits en el sensor DHT21 (AM2301)

0

Estoy intentando leer los datos del sensor del sensor de temperatura y humedad DHT21 (AM2301). Según la especificación, el proceso de lectura de datos se encuentra a continuación:

MCU envía una señal de inicio - El sensor envía una señal de reconocimiento - El sensor envía datos de 40 bits.

Estoy observando la línea de datos a través de un alcance. Las señales de inicio están bien, pero el sensor envía datos de 64 bits. ¿Existe alguna posibilidad de que el sensor envíe datos de 64 bits en lugar de datos de 40 bits? Si hago los cálculos de acuerdo con los primeros 40 bits, obtengo un error de paridad. Aquí está el ejemplo de datos de salida:

0xFE - 0x80 - 0xFE - 0xDA - 0x59 - 0xFF - 0xFF - 0xFF

También adjunté la vista de alcance.

    
pregunta abdullah cinar

2 respuestas

1

Parece que me está funcionando perfectamente, además de enviar algunos bits de cero no documentados después del final del byte de paridad.

En primer lugar, ha malinterpretado la especificación: un pulso largo es un "1" y uno corto es un "0". Eso da los primeros 16 bits como 0x019E y los segundos 16 bits como 0x011A. Convertirlos a decimales y dividirlos por diez según la hoja de datos proporciona una humedad del 41,4% y una temperatura de 28,2 grados centígrados, lo que parece bastante factible.

Finalmente, el byte de paridad es 0xBA, que es exactamente lo que obtienes si sumas 0x01, 0x9E, 0x01 y 0x1A juntos. No tengo ni idea de por qué usan el término "paridad" cuando la mayoría de ellos lo llaman una suma de comprobación.

    
respondido por el Finbarr
0

asegúrese de haber cumplido con la especificación de tiempo para los datos recibidos tal como se ve en el documento página 7

    
respondido por el Raj

Lea otras preguntas en las etiquetas