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_callback
Cuando 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=300
en 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!