Chapter 11. Digital Inputs

11.0. Introduction

In this chapter, we look at recipes for using digital inputs, such as switches and keypads. This chapter also covers modules that have a digital output that can be connected to a Raspberry Pi input.

Most of the recipes require the use of a solderless breadboard and male-to-male jumper wires (see Recipe 8.10).

11.1. Connecting a Push Switch


Be sure to check out the accompanying video for this recipe at


You want to connect a switch to your Raspberry Pi so that when you press it, some Python code is run.


Connect a switch to a GPIO pin and use the RPi.GPIO library in your Python program to detect the button press.

To make this recipe, you will need:

Figure 11-1 shows how to connect a tactile push switch, using a breadboard and jumper wires.

Connecting a push switch to a Raspberry Pi
Figure 11-1. Connecting a push switch to a Raspberry Pi

Open an editor (nano or IDLE) and paste in the following code. As with all the program examples in this book, you can also download the program from the Code section of the Raspberry Pi Cookbook website, where it is called

This example code displays a message when the button is pressed:

import RPi.GPIO as GPIO
import time


GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)


Get Raspberry Pi Cookbook now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.