Skip to content

Latest commit

 

History

History
 
 

Buttons

2.) Buttons Codes

Circuit Diagram

image

Code: 1

Check if a Button .is_pressed:

from gpiozero import Button

button = Button(2)

while True:
    if button.is_pressed:
        print("Button is pressed")
    else:
        print("Button is not pressed")

Code: 2

Wait for a button to be pressed before continuing: -> .wait_for_press()

from gpiozero import Button

button = Button(2)

button.wait_for_press() print("You have press the button")

Code: 3

Wait for a button to be pressed before continuing: -> .wait_for_release()

from gpiozero import Button

button = Button(2)

button.wait_for_press() print("You have press the button")

button.wait_for_release() print("you have release the Button")

Code: 4

Run a function every time the button is pressed: -> .when_pressed

from gpiozero import Button
from signal import pause

def say_hello(): print("Hello!")

button = Button(2)

button.when_pressed = say_hello

pause()

Code: 5

Run a function every time the button is pressed: -> .when_released

from gpiozero import Button
from signal import pause

def say_hello(): print("Hello!")

def say_goodbye(): print("Goodbye RaspberryPi!")

button = Button(2)

button.when_pressed = say_hello button.when_released = say_goodbye

pause()

Code: 6

import time
import RPi.GPIO as GPIO

# Pins definitions btn_pin = 4

# Set up pins GPIO.setmode(GPIO.BCM) GPIO.setup(btn_pin, GPIO.IN)

GPIO.input(btn_pin) print("Button is Pressed!) GPIO.cleanup()

Code: 7

import time
import RPi.GPIO as GPIO

# Pins definitions
btn_pin = 4


# Set up pins
GPIO.setmode(GPIO.BCM)
GPIO.setup(btn_pin, GPIO.IN)


# If button is pushed, msg will print
try:
    while True:
        if GPIO.input(btn_pin):
            print("Button is pressed!")
        else:
            print("Button is not pressed!")

# When you press ctrl+c, this will be called
finally:
    GPIO.cleanup()

Let's Control LED With Button

Circuit Diagram:

image

Code: 8

from gpiozero import LED, Button
from signal import pause

led = LED(17)
button = Button(2)

button.when_pressed = led.on
button.when_released = led.off

pause()

Alternative way:

Code: 9

from gpiozero import LED, Button
from signal import pause

led = LED(17) button = Button(2)

led.source = button

pause()

Code: 10

from gpiozero import LED, Button
from time import sleep

led = LED(17)
button = Button(2)

while True:
    button.wait_for_press()
    led.toggle()
    sleep(0.5)
# led.toggle() switches the state of the LED from on to off, or off to on. Since this happens in a loop the LED will turn on and off each time the button is pressed.

Shutdown with Button

Code: 11

from gpiozero import Button
from subprocess import check_call
from signal import pause

def shutdown():
    check_call(['sudo', 'poweroff'])

shutdown_btn = Button(17, hold_time=2)
shutdown_btn.when_held = shutdown

pause()

LEDBarGraph:

Circuit Diagram:

image

Code: 12

from gpiozero import LEDBoard
from time import sleep
from signal import pause

leds = LEDBoard(5, 6, 13, 19, 26)

leds.on()
sleep(1)
leds.off()
sleep(1)
leds.value = (1, 0, 1, 0, 1)
sleep(1)
leds.blink()

pause()

Code: 13

Note values are essentially rounded to account for the fact LEDs can only be on or off when pwm=False (the default).

However, using LEDBarGraph with pwm=True allows more precise values using LED brightness:

from gpiozero import LEDBarGraph
from time import sleep
from __future__ import division  # required for python 2

graph = LEDBarGraph(5, 6, 13, 19, 26, pwm=True)

graph.value = 1/10 # (0.5, 0, 0, 0, 0) sleep(1) graph.value = 3/10 # (1, 0.5, 0, 0, 0) sleep(1) graph.value = -3/10 # (0, 0, 0, 0.5, 1) sleep(1) graph.value = 9/10 # (1, 1, 1, 1, 0.5) sleep(1) graph.value = 95/100 # (1, 1, 1, 1, 0.75) sleep(1)

Reaction Game:

Circuit Diagram:

image

Code: 14

from gpiozero import Button, LED
from time import sleep
import random

led = LED(17)

player_1 = Button(2)
player_2 = Button(3)

time = random.uniform(5, 10)
sleep(time)
led.on()

while True:
    if player_1.is_pressed:
        print("Player 1 wins!")
        break
    if player_2.is_pressed:
        print("Player 2 wins!")
        break

led.off()