Today’s post is a really basic but widely used concept in the field of electronics. Its not surprising if you haven’t heard of the 2 concepts.
Todays post will cover what pull-up and pull-down resistors are and why pull-ups and pull-downs are absolutely necessary for and circuit that makes use of micro-controllers and micro-processors.
Think of pull-up and pull-down as a way to make sure that “noise” in a circuit is reduced. You know that there can be either a 0V or 5V at a IC pin, in any digital circuit, but what would happen if neither High (5V) voltage nor Low (0V) voltage is given to the pin?? This is where the concept of pull-up and pull-down comes into picture.
Understand that if no voltage is given to a pin of a micro-controller, then the micro-controller will mistake it for some random voltage. This is the ‘noise’ that was just mentioned. To avoid this, we can either set the voltage at the pin to 5V (pull-up) or to 0V (pull-down), whenever no input is to be applied to a pin.

Consider the above figure and consider the ‘GPIO’ (general purpose input output) to be the pin of the micro-controller. In the left figure, we need to set the pin LOW (that’s why there is a switch between the pin and ground). But whenever the ground is not connected, there will always be a +VCC or 5V connected to it through a resistor (R- PULLUP) to ensure that no ‘noise’ i.e random voltages is sent to the pin. Similarly in the right figure, there is a pull-down resistor connected between the pin and ground.
The concept of pull-up and pull-down is widely used in circuits using micro-controllers and micro-processors. And as a special note for those few people who have started asking themselves why the resistor is needed…(the vcc and ground could be directly connected right? why use a resistor??). Well, if the resistor wasn’t there, the pin would always have either 0V or 5V connected to it, and we would not be able to control the voltage we set at that pin. 
Take a look at this video to understand it better…
So that’s all for this post…. Hope you enjoyed!!