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!
 
            
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  