Un interruptor de botón Push es un dispositivo de entrada simple pero efectivo que a menudo se usa en proyectos como iniciar o detener los procesos, controlar LED o activar eventos. Este tutorial lo guiará a través de la conexión de un interruptor de botón Push al Raspberry Pi, configurando el cableado y escribiendo un script de Python para detectar las presiones de botones.
Lo que necesitarás
- Frambuesa pi (Cualquier modelo con soporte de GPIO, por ejemplo, PI 3, PI 4)
- Push Button Switch
- Cables de placa y jersey
- Resistor (10kΩ para desplegable)
- Python instalado en tu frambuesa pi
- Biblioteca de GPIO para controlar los pasadores GPIO de Raspberry Pi
Paso 1: Cableado el botón Push a la Raspberry Pi
Un interruptor de botón Push funciona conectando el pin GPIO a un estado alto (3.3V) cuando lo presiona o lo tira a bajo (0V) cuando no se presiona. Usaremos una resistencia desplegable para garantizar que el pin GPIO se lea bajo cuando no se presione el botón.
Cableado el botón Push
| PUSH BOTÓN PIN | Raspberry pi gpio pin |
|---|---|
| Un alfiler | GPIO17 (pin 11) |
| Otro alfiler | Tierra (pin 6) |
| Un alfiler | Resistencia de 10kΩ a tierra |
Aquí está la configuración del cableado:
- Conecte un terminal del botón PUSH a GPIO17 (Pin 11).
- Conecte el otro terminal del botón Push a Suelo (Pin 6).
- Conecte una resistencia de 10kΩ entre GPIO17 y Suelo actuar como una resistencia desplegable.
Esto asegura que cuando se presiona el botón, GPIO17 se lee alto (3.3V), y cuando no se presiona, la resistencia tira a GPIO17 a baja (0V).
Paso 2: Habilitar Pins GPIO en Python
-
Primero, actualice la lista de paquetes de su Raspberry Pi:
sudo apt update sudo apt upgrade -y -
Instale la biblioteca GPIO de Python requerida (si no es instalada):
sudo apt install python3-rpi.gpio -
Importar la biblioteca en su guión de Python:
import RPi.GPIO as GPIO import time
Paso 3: Escribir el código de Python
Ahora, escribamos un script de Python para detectar cuándo se presiona el botón y tome medidas en consecuencia.
Ejemplo de código de python
import RPi.GPIO as GPIO
import time
# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM) # Use BCM numbering
button_pin = 17 # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set up pin with pull-down resistor
# Function to detect button press
def button_callback(channel):
print("Button was pressed!")
# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)
try:
print("Press the button...")
while True:
# Keep the program running to wait for button press
time.sleep(0.1)
except KeyboardInterrupt:
print("Program exited")
finally:
GPIO.cleanup() # Clean up GPIO to ensure a clean exit
Explicación del código:
- GPIO.SetMode (GPIO.BCM): Establece la numeración del pin GPIO en el modo BCM (Broadcom).
- Gpio.setup (Button_pin, gpio.in, pull_up_down = gpio.pud_down): Configura el pin del botón como una entrada con una resistencia desplegable, lo que significa que se lee bajo cuando no se presione.
-
Gpio.add_event_detect (): Detecta el borde ascendente (presionar botón) del pin GPIO y desencadena la función de devolución de llamada
button_callbackCuando se presiona el botón. - tiempo. Duerme (0.1): Mantiene el script en funcionamiento, lo que permite esperar un botón Presione.
- Gpio.cleanup (): Limpia la configuración de GPIO cuando se sale el script.
Paso 4: Probar el botón
-
Ejecute su guión de Python:
python3 button.py -
Presione el botón Push y observe el mensaje "¡Se presionó el botón!" en la terminal.
Paso 5: Aplicaciones
Aquí hay algunas ideas para usar el botón Push en sus proyectos:
- Controlar un LED: Use el botón Push para alternar y desactivar un LED.
- Desencadenar un evento: Inicie o detenga un proceso (por ejemplo, inicie un motor, encienda un ventilador o inicie un script).
- Timbre inteligente: Use el botón como timbre para enviar una notificación a su teléfono.
- Entrada de usuario: Obtenga una entrada simple del usuario para sus proyectos (como una respuesta "sí/no").
Solución de problemas
-
Botón no detectado:
- Asegúrese de que el botón esté correctamente conectado con la resistencia desplegable.
- Vuelva a verificar su configuración de PIN de GPIO en el código.
-
Error de GPIO:
- Asegúrese de que la biblioteca GPIO esté instalada correctamente y que los números PIN en su script sean correctos.
-
Botón Bounce:
- Si nota que se detectan múltiples botones de botón, puede agregar un tiempo de desbloqueo (
bouncetime=300en el script) para evitar detecciones falsas.
- Si nota que se detectan múltiples botones de botón, puede agregar un tiempo de desbloqueo (
Conclusión
Usar un interruptor de botón Push con Raspberry Pi es una manera fácil de agregar funcionalidad de entrada a sus proyectos. Ya sea alternando LED, activar eventos o interactuar con otro hardware, esta configuración simple puede ser la base de muchas aplicaciones interesantes. ¡Experimente con diferentes alfileres de GPIO y configuraciones de desbloqueo para satisfacer sus necesidades!










