What is a pull up and pull down?

Can some one explain this terminology please I think I understand it but not completely sure.

I think pull down is where you place a resistor between +V and the other component and pull up is where you place the resistor between 0v and the component.

If I am completely wrong then let me know!

It's the other way around.

Pull up is where you place a resistor between a signal and +V, pull down is pulling it to ground.

Here, you can see that when the switch is open, in the pullup scenario the input pin will read high, but for pull down it will read low.

• Nice addition of diagrams! Commented Dec 2, 2010 at 13:31
• And to complement "pull-" (a gentle force), usually something else will force (drag, etc) the line in the opposite direction, e.g. here, the switches. Commented Dec 2, 2010 at 16:56
• roguescience.org doesn't seem to exist anymore. Could you post an alternate link please? Commented Dec 13, 2011 at 16:38
• @Everyone Fixed the image.
– Dean
Commented May 24, 2013 at 7:44

The basic function of a pull-up or pull-down resistor is to insure that given no other input, a circuit assumes a default value. But one pulls the line high, the other pulls it low.

Good source to learn: http://www.seattlerobotics.org/encoder/199703/basics.html

• Of course, many microcontrollers contain internal pullups (which may need enabling in software) Commented Dec 2, 2010 at 12:31
• Most (ALL?) microcontrollers have some amount of leakage current on their pins. So a floating pin may or may not be pulled high or low by that leakage. The pullup or pulldown resistor lets you override that leakage with a higher and deliberate leakage of your own. Also local transients like electric fields can bias an I/O pin one way or the other without a pull resistor.
– user121934
Commented Feb 21, 2020 at 17:35

Lots of valid points here, examples of what pull-ups are, and certainly you can work out which way is up from them, but I'm going to aim this at the 'explain the terminology' aspect..

The mnemonic that makes sense (to me anyway) is that the resistor is used to 'pull' the pin to some established voltage; so usually one speaks of pulling 'up' toward the positive supply voltage, or pulling 'down' toward ground or a negative supply voltage.

A pullup resistor will be found connected between some signal and v+. A pulldown resistor will be found connected between some signal and signal_ground(0V).

Common uses are where an input to some component requires one of two voltage states to operate reliably but you are driving the input with some component that can only drive a signal in one way. Maybe the input is the gate of a FET, maybe an input to a microcontroller or a logic gate. Maybe the output is coming from an open drain fet or an open collector BJT transistor or maybe you have a situation where many outputs got diode or'ed.

The deal is that the input can deal with the driven signal from the output but when that signal is no longer present, there's a good chance that you now have a situation where the input sees high impedance. Under these circumstances, what signal the input "sees" is unpredictable. It could pick up noise from nearby electrical cables. It could pick up static electricty discharges from nearby etc. The input may end up switching states at undesirable frequencies. Of course usually you don't want the input to be able to "switch" on its own at all. So you pull the signal up or down when the opposite driven signal is idle.

The value of a pull resistor depends on your power budget, the max current/voltage/power the output components can deliver and what voltage/current the input requires to see a steady state that is opposite to the "driven" output state.

I think your confusion stems from what you're pulling. You may see the resistor between V++ and the output either as pulling down from V++, or pulling up from output/input. The thing is that it is no use pulling V++; it will remain V++ (as long as you don't exaggerate the pull). Likewise you can't pull ground up; it's ground, it's your reference!
Hence the explanation is that you pull the output/input. Towards V++ is up, towards ground is down.

Let me make an attempt in answering a so-commonly-asked question the best I can.

Say we have an Arduino - A and we want to digitalRead a signal from a pin A2. We will later reference Arduino 5v pin as A(5v) and its ground pin as A(gnd)

Let's me make a simple connection below and read the digital INPUT on Arduino Serial console:

Connection 1:  A2 to A(5v) will read 1
Connection 2:  A2 to A(gnd) will read 0

Fact, if we were to add a button B in between to the above simple connections in a pressed-down state nothing will change to the INPUT digits.

Connection 1:  A2 to B(pressed) to A(5v) will read 1
Connection 2:  A2 to B(pressed) to A(gnd) will read 0

But what will happen when the button is released? Will the digitalRead always guarantee to deliver the opposite digit? No! But do we want to? Yes, of course!

To ensure the reversed digit is delivered when the button is released we would need to add a Resistor - R to the above respective connections as follows:

Connection 1:  A2 to R to A(gnd) will give an opposite read 0 when button NOT pressed
Connection 2:  A2 to R to A(5v)  will give an opposite read 1 when button NOT pressed

Now you can finally see the answers for yourself.

a. Connection 1 is PULLDOWN coz Resistor pulls it DOWN to the ground to give you 0 in OPEN state.
b. Connection 2 is PULLUP coz Resistor pulls it UP to the 5v to give you 1 in OPEN state.

Oh wait, now you know why in the PULL-UP the button delivers 1 when open. :)

Happy soldering!!!

These are generally used in digital logic.

As they can have 3 states. They can be on , off and the third state is HiZ (tristate) which is a high impedance state.

The resistor connected to the load and ground is locked down to the low state. This is known as the pull down resistor.

The resistors connected to load and positive Vcc is locked down to the high state. This is known as the pull up resistor.

So when we don’t use pull down resistor we get the floating values that’s why we use this resistor to ensure that the reverse digit is delivered when we pressed the button but why we get the floating values, I’m not sure but may be the micro controller unpredictably take the input from the pin as logic high or low so I think may due to this we get the floating values.

And if we don’t use pull up resistor then make a ckt and we can see that this always gives high value at output. (Here i consider using a switch and read the value throung a pin connected to arduino) But this concept apply everywhere

• Please don't use Fritzing diagrams, they are difficult to read (for example you describe this a s a "pull up" but really this is a "pull down"). Also the pin can "float" but the value you get on the pin will be a 1 or 0, there is no "floating value" (unless it's analog). Commented Nov 21, 2021 at 22:33
• Hey i describe the both condition and below in figure i only illustrate the pull down resistor condition and it is from tinkercad ,can you tell me if i could not use the tinkercas fugure then what can i use .i thought it is good to have a diagram for better understanding thats why i put it there Commented Dec 11, 2021 at 10:31