Nota

¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.

¿Por qué unirse?

  • Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Previews exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y avances.

  • Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.

  • Promociones y sorteos festivos: Participa en sorteos y promociones navideñas.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo!

2.1.1 Botón

Introducción

En este proyecto, aprenderemos cómo encender o apagar el LED usando un botón.

Componentes necesarios

En este proyecto, necesitamos los siguientes componentes.

../_images/2.1.1_Button_list.png

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Kit Raphael

337

Raphael Kit

También puedes comprarlos por separado en los siguientes enlaces.

INTRODUCCIÓN DE COMPONENTES

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

LED

COMPRAR

Botón

COMPRAR

Diagrama esquemático

Utiliza un botón normalmente abierto como entrada para Raspberry Pi, la conexión se muestra en el diagrama esquemático a continuación. Cuando se presiona el botón, el GPIO18 se convierte en un nivel alto (3.3V). Podemos detectar el estado del GPIO18 a través de la programación. Es decir, si el GPIO18 se convierte en nivel alto, significa que el botón está presionado. Puedes ejecutar el código correspondiente cuando se presiona el botón, y entonces el LED se encenderá.

Nota

El pin más largo del LED es el ánodo y el más corto es el cátodo.

../_images/2.1.1_Button_schematic_1.png ../_images/2.1.1_Button_schematic_2.png

Procedimientos Experimentales

Paso 1: Construir el circuito.

../_images/2.1.1_Button_circuit.png

Paso 2: Abrir el archivo de código.

cd ~/raphael-kit/python-pi5

Paso 3: Ejecutar el código.

sudo python3 2.1.1_Button_zero.py

Ahora, presiona el botón y el LED se encenderá; suelta el botón y el LED se apagará.

Advertencia

Si recibe el mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulte Si «gpiozero» no funciona.

Código

Nota

Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como raphael-kit/python-pi5. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.

#!/usr/bin/env python3
from gpiozero import LED, Button  # Importar las clases LED y Button de gpiozero
from signal import pause  # Importar la función pause del módulo signal

# Inicializar un objeto LED en el pin GPIO 17
led = LED(17)
# Inicializar un objeto Button en el pin GPIO 18
button = Button(18)

# Vincular el evento "when_pressed" del botón al método on() del LED
button.when_pressed = led.on
# Vincular el evento "when_released" del botón al método off() del LED
button.when_released = led.off

# Ejecutar un bucle de eventos que espera eventos del botón y mantiene el script en ejecución
pause()

Explicación del Código

  1. El script está escrito en Python3 e importa las clases LED y Button de la biblioteca gpiozero, y pause del módulo signal.

    #!/usr/bin/env python3
    from gpiozero import LED, Button  # Importar las clases LED y Button de gpiozero
    from signal import pause  # Importar la función pause del módulo signal
    
  2. Inicializa un objeto LED en el pin GPIO 17 y un objeto Button en el pin GPIO 18.

    # Inicializar un objeto LED en el pin GPIO 17
    led = LED(17)
    # Inicializar un objeto Button en el pin GPIO 18
    button = Button(18)
    
  3. Configura manejadores de eventos para que el LED se encienda cuando se presione el botón y se apague cuando se suelte el botón.

    # Vincular el evento "when_pressed" del botón al método on() del LED
    button.when_pressed = led.on
    # Vincular el evento "when_released" del botón al método off() del LED
    button.when_released = led.off
    
  4. Esto mantiene el script en ejecución en un bucle de eventos, esperando los eventos de presionar y soltar el botón.

    # Ejecutar un bucle de eventos que espera eventos del botón y mantiene el script en ejecución
    pause()