[Logo for The C Shore Landing Page]
The C Shore

Easy Button

Table of Contents

Easy Button

Sadly our easy button is not as easy as the Staples® easy button.

Hardware

Keep the LED connected.

Adding a Button

  • Positioning these buttons correctly is rather tricky. Don't worry. If you end up with the button turned the wrong way, all that will happen is that it will act as if it was always pressed. If that is what you are seeing, just rotate the button a quarter of way around.

  • Connect one pin of the button to GPIO 2 and the other to GND (ground).

  • This creates a second circuit (separate from LED circuit) in which no electricity flows unless the button is pressed. It is actually the commands you use on the Pi that turn on the LED.

  • When the button is pressed electricity flows from the GPIO2 (which acts as 3V3 volts), through a resistor inside the Pi, to GND (ground / 0 volts). The Pi senses this.

  • Extra Information (ignore if you wish): We call a circuit which is ‘on’ when it goes low (gets connected to ground) ‘active low’. Most of the time in digital electronics, devices are ‘active high’. (that is they are ‘on’ when connected to power / positive voltage).

  • Since we can tell the Pi to pause until it senses the button being pressed, we can send commands to the Pi to light the LED once the button is pressed.

Load the Code

In Mu, Load` 02-wait-for-button-turn-led-on-and-off.py`

It should contain

from gpiozero import LED, Button    # Information the computer needs
from time import sleep              # More information the computer
                                    # needs

led = LED(17)                       # Use GPIO 17 for the LED
button = Button(2)                  # Use GPIO 2 for the Button

button.wait_for_press()             # Wait until the button is pressed
led.on()                            # Turn LED on and leave it on
sleep(1)                            # Wait for 1 second
led.off()                           # Turn LED off and leave it off

Question

How would you have Pi wait one second after the button is pressed before turning the LED on and off?

Exercise

‘Hot potato!’ time

Make the Pi wait one second after the button is pressed before turning the LED on and off.


Question

How would you make the Pi wait until the button is pressed to light the LED, light the LED (and leave it on), and then wait until you press the button again to turn the LED off?

Exercise

Whackamole!

Make the Pi wait until the button is pressed to light the LED, light the LED (and leave it on), and then wait until you press the button again to turn the LED off?

Experimentation

Take turns trying making interesting modifications to the programs you've worked with today.