Pull up resistor on DHT11

According to Pull-up Resistors - SparkFun Learn , pull up resistors make sure the default state of inputs to be HIGH which simply is

And on this tutorial for a 4 pins DHT11, it is wiring a pull-up resistor this way.


And from my understanding, in a schematic way

I am confused by the meaning of the resistor, the circuit is not open/broken, which is not in the same situation in the first picture I posted.

So in this setup, IF the circuit is complete in the first place, current will NOT flow from 5V to the 10k resistor but going to PIN 1 of DHT11 straight away, due to the high resistance of the resistor. AND shouldn't PIN 2 outputting current right away INTERNALL(tapping into the current from VCC within the sensor)

A 3-PIN DHT11 doesn't need a pull-up resistor while a 4-PIN one DO require one.
Why is it necessary to add a pull up resistor for 4 Pin DHT11?

Hi, @chung705

The output pin of the DHT11 is just a collector of a transistor.

It is what is called an open collector output you need to provide the collector to supply resistor so you have collector current output.

This configuration allows the DHT11 to operate at 5V, and provide digital data to an MCU using a different power supply voltage.

Tom... :smiley: :+1: :coffee: :australia:

1 Like

Hope that the following conceptual diagram (Fig-1) of 4-pin DHT11connected with UNO will answer to some of your questions:

DHT11-4Pin
Figure-1:

1. Q1 is an open collector transistor. So, to generate pulses at DPin-2 in response to the signal at base of Q1, there must be a pull-up resistor (R) at C-point of the transisitor. This is basic electronics.

2. There is an internal pull-up resistor (Rip) inside the Arduino UNO, and this resistor comes in picture when DPin-2 is configured as an input line. The following code can be put under setup() function to connect the Rip (S1 will be closed) and then the external pull-up (R) will not be needed any more. (Note that Rip has the value 20k-50k, and it may work work and may not with DHT11.)

pinMode(2, INPUT_PULLUP);

Thank you very much for the explanation :100:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.