Lesson 6 Digital Inputs
Lesson 6 Digital Inputs
Overview
In this lesson, you will learn to use push buttons with digital inputs to turn an LED on and
off.Pressing the button will turn the LED on; pressing the other button will turn the LED off.
Component Required:
Component Introduction
PUSH SWITCHES:
Switches are really simple components. When you press a button or flip a lever, they
connect two contacts together so that electricity can flow through them.
The little tactile switches that are used in this lesson have four connections, which can be
a little confusing.
Connection
Schematic
Wiring diagram
Although the bodies of the switches are square, the pins protrude from opposite sides of
the switch. This means that the pins will only be far enough apart when they are placed
Remember that the LED has to have the shorter negative lead to the left.
Code
After wiring,please open program in the code folder- Lesson 6 Digital Inputs, and press
UPLOAD to upload the program. If errors are prompted, see Lesson 3 for details about the
Load the sketch onto your UNO R3 board. Pressing the left button will turn the LED on
The first part of the sketch defines three variables for the three pins that are to be used.
The 'ledPin' is the output pin and 'buttonApin' will refer to the switch nearer the top of the
breadboard and 'buttonBpin' to the other switch. The 'setup' function defines the ledPin as
being an OUTPUT as normal, but now we have the two inputs to deal with. In this case,
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
The pin mode of INPUT_PULLUP means that the pin is to be used as an input, but that if
nothing else is connected to the input, it should be 'pulled up' to HIGH. In other words, the
default value for the input is HIGH, unless it is pulled LOW by the action of pressing the
button.
This is why the switches are connected to GND. When a switch is pressed, it connects the
Since the input is normally HIGH and only goes LOW when the button is pressed, the
logic is a little upside down. We will handle this in the 'loop' function.
void loop()
if (digitalRead(buttonApin) == LOW)
digitalWrite(ledPin, HIGH);
if (digitalRead(buttonBpin) == LOW)
digitalWrite(ledPin, LOW);
In the 'loop' function there are two 'if' statements. One for each button. Each does an
Remember that if the button is pressed, the corresponding input will be LOW, if
Example picture