bertmelis / esp32DHT

DHT library for ESP32 using the RMT peripheral
MIT License
27 stars 9 forks source link

pulse < 130 is very high #9

Open FireDeveloper opened 1 year ago

FireDeveloper commented 1 year ago

RMT starts counting from first high pulse. This results in measuring the time of Treh and Tlow of bit 39. https://files.seeedstudio.com/wiki/Grove-Temperature_and_Humidity_Sensor_Pro/res/AM2302-EN.pdf DS1Z_QuickPrint1 - Copy

The reason that it works is because the DHT has a low pulse after bit0 (Ten) which happens to have the same width with Tlow and rmt counts it as bit0. chrome_RuhvtQPJ8Y

According to the datasheet the minimum width of the measured pulses here https://github.com/bertmelis/esp32DHT/blob/master/src/esp32DHT.cpp#L135 is 123us and the average 130us (exactly the limit)

Also an improvement would be here https://github.com/bertmelis/esp32DHT/blob/master/src/esp32DHT.cpp#L144 to change to data[i].duration0 + data[i-1].duration1;

bertmelis commented 1 year ago

Nice capture. I don't have a scope so it was trial and error getting the pin the switch from digital output to RMT input.

I'll have a closer look but a PR with a "better" scope image is welcome.