Arduino Input Pullup Serial

Arduino Input Pullup Serial


Input Pullup Serial

This example that demonstrates the usage of INPUT_PULLUP with pinMode(). It helps monitor the state of a switch by establishing a serial communication between your Arduino and the computer over USB Slot.Additionally, when the input is HIGH, the onboard LED attached to the pin 13 will turn on; when LOW, the LED will turn off.
Required Hardware
– Arduino Board
– momentary switch, button, or toggle switch
– breadboard
– hookup wire


Arduino Uno

We need to connect two wires to the Arduino board. The black wire will connect ground to the one leg of the push button. The second wire goes from the digital pin 2 to the other leg of the push button.

Push buttons or switches will connect two points in the circuit, when you press them. When the push button is unpressed then there is no connection between the two legs of the push button. Because the internal pull-up on pin 2 is active and connected to 5V, we read HIGH when the button is open. When the button is closed, the Arduino reads LOW because a connection to ground is completed.


Arduino Input Pullup serial


In the program below, the very first thing that you do will in the setup function is to begin serial communications, at 9600 bits of data per second, between your Arduino and your computer with the line:


Next, initialize digital pin 2 as an input with the internal pull-up resistor enabled:


The following line make pin 13, with the onboard LED, an output :

pinMode(13, OUTPUT);

Now that your setup has been completed, move into the main loop of your code. When your button is not pressed, the internal pull-up resistor connects to 5 volts. This causes the Arduino to report “1” or HIGH. When the button is pressed, the Arduino pin is pulled to ground, causing the Arduino report a “0”, or LOW.

The first thing you need to do in the main loop of your program is to establish a variable to hold the information coming in from your switch. Since the information coming in from the switch will be either a “1” or a “0”, you can use an int datatype. Call this variable sensorValue, and set it to equal whatever is being read on digital pin 2. You can accomplish all this with just one line of code:

int sensorValue = digitalRead(2);

Once the Arduino has read the input, make it print this information back to the computer as a decimal (DEC) value. You can do this with the command Serial.println() in our last line of code:

Serial.println(sensorValue, DEC);

Now, when you open your Serial Monitor in the Arduino environment, you will see a stream of “0”s if your switch is closed, or “1”s if your switch is open.

The LED on pin 13 will illuminate when the switch is HIGH, and turn off when LOW.


 Input Pull-up Serial

This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a digital

 input on pin 2 and prints the results to the Serial Monitor.

The circuit:

 – momentary switch attached from pin 2 to ground

 – built-in LED on pin 13

Unlike pinMode(INPUT), there is no pull-down resistor necessary. An internal

20K-ohm resistor is pulled to 5V. This configuration causes the input to read

HIGH when the switch is open, and LOW when it is closed.

This example code is in the public domain.


void setup() {

 //start serial connection


 //configure pin 2 as an input and enable the internal pull-up resistor

 pinMode(2, INPUT_PULLUP);

 pinMode(13, OUTPUT);


void loop() {

 //read the pushbutton value into a variable

 int sensorVal = digitalRead(2);

 //print out the value of the pushbutton


 // Keep in mind the pull-up means the pushbutton’s logic is inverted. It goes

 // HIGH when it’s open, and LOW when it’s pressed. Turn on pin 13 when the

 // button’s pressed, and off when it’s not:

 if (sensorVal == HIGH) {

   digitalWrite(13, LOW);

 } else {

   digitalWrite(13, HIGH);



Previous articleArduino Uno Rev3