Summary of Arduino Sketch ReadSwitchInput
This Arduino sketch reads the state of a switch connected to digital pin 2 and reports its value by lighting the built-in LED and printing the state to the serial monitor at 9600 baud. The switch is wired with a 10K pull-up resistor, making the input active-low: the LED lights when the switch is pressed. The program initializes the necessary pins and continuously reads the switch state in the loop, updating the LED and serial output accordingly.
Parts used in the ReadSwitchInput Project:
- Arduino Board (with built-in LED on pin 13)
- SPST Switch
- 10K Ohm Resistor (Pull-up resistor)
- Connecting Wires
- Computer with Arduino IDE for serial monitoring
This sketch is used by Exercise: Read Switch Input.

Full Source Code
The full code is all in one file ReadSwitchInput.ino.
// ReadSwitchInput - read a digital input and report its value using the LED and serial monitor // // Copyright (c) 2016, Garth Zeglin. All rights reserved. Licensed under the // terms of the BSD 3-clause license as included in LICENSE. // // This program assumes that: // // 1. An SPST switch connected between digital pin 2 and ground, and a 10K // pullup resistor between digital pin 2 and +5V. // // 2. The serial console on the Arduino IDE is set to 9600 baud communications speed. // ================================================================================ // Define constant values. // The wiring assignment. #define SWITCH_PIN 2 // ================================================================================ // Configure the hardware once after booting up. This runs once after pressing // reset or powering up the board. void setup() { // Initialize the serial UART at 9600 bits per second. Serial.begin(9600); // Initialize the hardware digital pin 13 as an output. The 'OUTPUT' symbol // is pre-defined by the Arduino system. pinMode(LED_BUILTIN, OUTPUT); // Initialize the switch pin for input. pinMode(SWITCH_PIN, INPUT); } // ================================================================================ // Run one iteration of the main event loop. The Arduino system will call this // function over and over forever. void loop() { // Read the switch value. As wired, it is 'active-low', so if the switch is // open the value will be 1 (HIGH), else 0 (LOW). int value = digitalRead(SWITCH_PIN); // Output the value to the onboard LED. digitalWrite(LED_BUILTIN, value); // Print the value out the serial port so it can be seen on the console. This // can take time, so this delay is the primary determinant of the inptu // sampling rate. Serial.println(value); } // ================================================================================
Source: Arduino Sketch ReadSwitchInput