Digital Electronics

Pull-Up and Pull-Down Resistors

Digital circuits require every input pin to have a clearly defined logic level. If an input is left unconnected, it may "float" and randomly switch between HIGH and LOW due to electrical noise. Pull-up and pull-down resistors prevent floating inputs by providing a weak connection to either the positive supply or ground. These resistors are widely used with microcontrollers, push-buttons, switches, logic ICs, sensors and communication interfaces.

Pull-Up and Pull-Down Resistors

What Is a Floating Input?

A floating input is a digital input pin that is not connected to either a logic HIGH or logic LOW.

Because the input has no defined voltage, it can pick up electrical noise, resulting in unpredictable behaviour such as false button presses or random logic changes.

Pull-Up Resistor

A pull-up resistor connects the input pin to the positive supply voltage (VCC). When the switch is open, the resistor holds the input HIGH.

VCC
 │
[10 kΩ]
 │
Input ───── Switch ───── GND

When the switch closes, the input is connected directly to ground, producing a LOW logic level.

Pull-Down Resistor

A pull-down resistor connects the input pin to ground. When the switch is open, the resistor keeps the input LOW.

VCC
 │
Switch
 │
Input
 │
[10 kΩ]
 │
GND

Closing the switch connects the input to VCC, producing a HIGH logic level.

Why Use a Resistor?

Without the resistor, closing the switch could directly short the supply to ground, causing excessive current and possible damage.

The resistor limits current while still allowing the input to assume the correct logic state.

Choosing the Resistor Value

The resistor should be low enough to overcome electrical noise but high enough to minimise current consumption.

Value Typical Use
1 kΩ High-noise environments.
4.7 kΩ General-purpose digital circuits.
10 kΩ Most microcontroller inputs.
47 kΩ Low-power battery-operated devices.
100 kΩ Very low-current applications.

Internal Pull-Up Resistors

Many modern microcontrollers include internal pull-up resistors that can be enabled through software.

Microcontroller Internal Pull-Up
Arduino (ATmega328P) Yes
ESP32 Yes
ESP8266 Yes
STM32 Yes
Raspberry Pi GPIO Yes

Not all devices provide internal pull-down resistors, so always consult the datasheet.

Applications

  • Push-button switches.
  • Limit switches.
  • Microcontroller GPIO inputs.
  • Digital sensors.
  • I²C communication buses.
  • Reset circuits.
  • Interrupt inputs.
  • Logic ICs.
  • Relay control circuits.
  • Industrial automation.

Pull-Up vs Pull-Down

Feature Pull-Up Pull-Down
Default Input State HIGH LOW
Connected To VCC Ground
Switch Connects To Ground VCC
Most Common Yes Less common

Common Mistakes

Mistake Consequence
Leaving inputs floating. Random or unstable operation.
Using too small a resistor. Unnecessary current consumption.
Using too large a resistor. Poor noise immunity.
Assuming every microcontroller has internal pull-down resistors. Incorrect circuit operation.
Ignoring the datasheet. Incorrect resistor selection.

Real-World Examples

Application Typical Pull Resistor
Arduino Push Button 10 kΩ Pull-Up
ESP32 GPIO Input Internal Pull-Up
I²C Bus (SDA/SCL) 4.7 kΩ Pull-Up
Reset Pin 10 kΩ Pull-Up
Door Sensor 10 kΩ Pull-Up

Key Points

  • Pull-up and pull-down resistors prevent floating digital inputs.
  • They ensure reliable HIGH and LOW logic levels.
  • 10 kΩ is a common value for many digital circuits.
  • Many microcontrollers include internal pull-up resistors.
  • Always check the datasheet before relying on internal pull resistors.

Next Lesson

Continue by learning about Current-Sense Resistors, which are used to measure current accurately in power supplies, battery chargers and motor controllers.

Next Lesson → Current-Sense Resistors