Skip to content

Commit 3a86e46

Browse files
Remove pin high for 40us at end of start sequence
This fixes issue 48, using the method suggested there. Reference: adafruit#48
1 parent c978977 commit 3a86e46

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

DHT.cpp

+6-2
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,12 @@ boolean DHT::read(bool force) {
152152
InterruptLock lock;
153153

154154
// End the start signal by setting data line high for 40 microseconds.
155-
digitalWrite(_pin, HIGH);
156-
delayMicroseconds(40);
155+
//digitalWrite(_pin, HIGH);
156+
//delayMicroseconds(40);
157+
//WEB: This is an error. DHT tries to pull the line low as soon as it came back to high.
158+
// therefore the low-high transition after the start signal "low" needs to be realised by
159+
// the pullup resistor only, uC pin must already be in INPUT mode.
160+
// Fixes issue 48: https://github.com/adafruit/DHT-sensor-library/issues/48
157161

158162
// Now start reading the data line to get the value from the DHT sensor.
159163
pinMode(_pin, INPUT_PULLUP);

0 commit comments

Comments
 (0)