En este tutorial aprenderemos cómo controlar un botón a través del GPIO con Python.
Materiales:
- Raspberry Pi con Raspbian o similar
- Botón
- Resistencia 1K
- 2 cables macho/hembra
- Placa de pruebas
El código necesario para controlar el botón es:
import RPi.GPIO as GPIO
def button_pressed(data):
data['remaining_clicks'] -= 1
print("Remaining Clicks: {}".format(data['remaining_clicks']))
BUTTON_PIN = 12 # Configuramos el PIN del botón
GPIO.setmode(GPIO.BOARD) # Configuramos el modo GPIO a BOARD para usar el número de PIN
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Preparamos el PIN del botón
data = {'remaining_clicks': 5} # Creamos un dicionario porque es mutable
GPIO.add_event_detect( # Detectamos el evento del botón
BUTTON_PIN, GPIO.RISING,
callback=lambda x: button_pressed(data), # Usamos un lambda para pasar parámetros
bouncetime=250 # Usamos bouncetime para evitar clicks repetidos
)
print("Exit script by pressing the button 5 times.")
while data['remaining_clicks'] > 0:
pass
GPIO.cleanup() # Limpiamos GPIO
Aquí podemos ver el circuito del botón y la Raspberry Pi:
Aquí dejo un video explicativo para ver cómo montar el circuito y ejecutar el código en la Raspberry: