en:pfw:dht22tmpformat
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:pfw:dht22tmpformat [2025-04-26 17:32] – [The reality] mka | en:pfw:dht22tmpformat [2025-04-27 13:39] (current) – [A Strange DHT22 Module] mka | ||
---|---|---|---|
Line 1: | Line 1: | ||
{{pfw: | {{pfw: | ||
- | ====== The Document ====== | + | ====== The DHT22 Document ====== |
[[https:// | [[https:// | ||
- | //Example 1// first shows the interpretation of temperatures above 0 °C and then, as a " | + | //Example 1// first shows the interpretation of temperatures above 0 °C and then, as a " |
+ | Check it out there. | ||
====== The Reality ====== | ====== The Reality ====== | ||
+ | But then I was confused because the sensor I was using delivered something different. | ||
- | ===== A strange | + | ===== A Strange |
- | But then I was confused because the sensor I was using delivered something different. | + | Near the freezing point of water, a value of around 4095 decimal was output. |
< | < | ||
Line 31: | Line 33: | ||
| | ||
You can see that the MSB in the upper byte is 0, but all other bits are set. | You can see that the MSB in the upper byte is 0, but all other bits are set. | ||
- | If you only take the lower byte, it's $72, which is &114. So, -11.4°C should be displayed here. However, this format didn't correspond to the specification in the datasheet. Instead, it resembled | + | If you only take the lower byte, it's $72, which is &114. So, -11.4°C should be displayed here. However, this format didn't correspond to the specification in the datasheet. Instead, it resembled |
Using the logic analyzer, it was possible to verify that this was not a read error during the SDA bitbang, but that the read routine was actually working correctly. | Using the logic analyzer, it was possible to verify that this was not a read error during the SDA bitbang, but that the read routine was actually working correctly. | ||
Line 37: | Line 39: | ||
{{: | {{: | ||
+ | There have been numerous questions online about the problem of a DHT22 module malfunctioning in sub-zero temperatures. But ultimately, there was no conclusive explanation as to what exactly is going wrong. I don't know what has to happen in the module itself for this error to occur. But it seems to me that you can program around it. However, that would mean rewriting the driver from a library. But now that we see what's causing it, it could also be done in C, right? Such a routine could also check whether this strange 12-bit representation is present and then display the temperature accordingly. These modules are supposed to be calibrated. Let's see... | ||
+ | :) | ||
- | ===== The good modules | + | |
+ | ===== The Good Modules | ||
After purchasing additional DHT22 modules (am2302), it became clear that only one sensor was delivering these strange temperature values. Three others behaved as specified in the datasheet. | After purchasing additional DHT22 modules (am2302), it became clear that only one sensor was delivering these strange temperature values. Three others behaved as specified in the datasheet. | ||
Line 61: | Line 66: | ||
</ | </ | ||
In the source code, the Forth word '' | In the source code, the Forth word '' | ||
- | When printed | + | When printed formatted, it shows -17.0 °C. |
{{: | {{: |
en/pfw/dht22tmpformat.1745681545.txt.gz · Last modified: 2025-04-26 17:32 by mka