![](/img/trans.png)
[英]Can I use multipule DHT22's reading seperate temp/ humidity on a mega2560?
[英]DHT22 Sensor's checksum not valid
从 DHT22 传感器读取的位如下:
00000001110100010000000011101111111101111
参考: https : //cdn-shop.adafruit.com/datasheets/Digital+humity+and+temperature+sensor+AM2302.pdf
如果将示例中的每个八位字节转换为十进制并将其与最后 8 位(校验和)进行比较 - 它们是相等的。
Binary: Decimal:
00000001 1 //First 8 bits
11010001 209 //Second 8 bits
00000000 0 //Third 8 bits
11101111 239 //Fourth 8 bits
---------------------------------->
Summed: 449
------------ Not equal ----------->
11000001 193 //Check sum
当转换 16 位湿度和 16 位温度时,它们显示基于其他流行 DHT22 库的正确结果,但校验和无效。
我误解了他们给出的公式。 最后 8 位是指 4 个八位字节总和的最后 8 位:
Binary: Decimal:
00000001 1 //First 8 bits
11010001 209 //Second 8 bits
00000000 0 //Third 8 bits
11101111 239 //Fourth 8 bits
---------------------------------->
Summed: 449
449 as Binary: 111000001
449's last 8 bits: 11000001
11000001 as decimal: 193
----------------------------- Equal ----------->
11000001 193 //Check sum
我希望有同样问题的人来解决这个问题,因为我花了数小时的时间尝试找出导致问题的原因。
在他们的示例中,它们的总和也低于 255,甚至更难捕捉到它,因为您不需要删除一点,因为该值不大于 8 位。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.