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.

  • Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Avances Exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y adelantos.

  • Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • 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.3 Módulo de Interruptor Táctil

Introducción

En este proyecto, aprenderás sobre el módulo de interruptor táctil. Puede reemplazar los tipos tradicionales de interruptores con estas ventajas: operación conveniente, agradable sensación al tacto, control preciso y mínimo desgaste mecánico.

Componentes Necesarios

En este proyecto, necesitaremos los siguientes componentes.

../_images/2.1.3_touch_switch_list.png

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

Nombre

ARTÍCULOS EN ESTE KIT

ENLACE

Kit Raphael

337

Raphael Kit

También puedes comprarlos por separado en los enlaces a continuación.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

LED

COMPRAR

Módulo de Interruptor Táctil

COMPRAR

Diagrama Esquemático

../_images/2.1.3_touch_switch_schematic.png

Procedimientos Experimentales

Paso 1: Construir el circuito.

../_images/2.1.3_touch_switch_circuit.png

Paso 2: Cambiar directorio.

cd ~/raphael-kit/python-pi5

Paso 3: Ejecutar.

sudo python3 2.1.3_TouchSwitch_zero.py

Mientras el código se está ejecutando, el LED rojo se enciende; cuando tocas el módulo de interruptor táctil, el LED amarillo se enciende.

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  # Importa las clases LED y Button de gpiozero
from time import sleep  # Importa sleep para retrasos

# Inicializa el sensor táctil (Button) en el pin GPIO 17, con la resistencia pull-up deshabilitada
touch_sensor = Button(17, pull_up=False)  # Adecuado para sensores que llevan el pin a bajo cuando se presionan

# Inicializa LED1 y LED2 conectados a los pines GPIO 22 y 27 respectivamente
led1 = LED(22)  # LED1 conectado al pin GPIO 22
led2 = LED(27)  # LED2 conectado al pin GPIO 27

try:
    # Monitorea continuamente el estado del sensor táctil y controla los LEDs en consecuencia
    while True:
        if touch_sensor.is_pressed:  # Check if the touch sensor is pressed
            print('You touch it!')  # Output message indicating sensor activation
            led1.off()  # Turn off LED1
            led2.on()   # Turn on LED2
        else:  # If the sensor is not pressed
            led1.on()   # Turn on LED1
            led2.off()  # Turn off LED2

        sleep(0.5)  # Pausa de 0.5 segundos antes de verificar nuevamente el estado del sensor

except KeyboardInterrupt:
    # Maneja una interrupción de teclado (Ctrl+C) para salir del bucle limpiamente
    pass

Explicación del Código

  1. Esta línea configura el script para ejecutarse con Python 3. Importa LED y Button de gpiozero para controlar dispositivos GPIO, y sleep de time para retrasos.

    #!/usr/bin/env python3
    from gpiozero import LED, Button  # Importa las clases LED y Button de gpiozero
    from time import sleep  # Importa sleep para retrasos
    
  2. Inicializa un sensor táctil (como un Button) en el pin GPIO 17 con pull-up deshabilitado, y dos LEDs en los pines GPIO 22 y 27.

    # Inicializa el sensor táctil (Button) en el pin GPIO 17, con la resistencia pull-up deshabilitada
    touch_sensor = Button(17, pull_up=False)  # Adecuado para sensores que llevan el pin a bajo cuando se presionan
    
    # Inicializa LED1 y LED2 conectados a los pines GPIO 22 y 27 respectivamente
    led1 = LED(22)  # LED1 conectado al pin GPIO 22
    led2 = LED(27)  # LED2 conectado al pin GPIO 27
    
  3. El bucle principal verifica el estado del sensor táctil. Cuando se toca, LED2 se enciende y LED1 se apaga; cuando no se toca, LED1 está encendido y LED2 apagado. El bucle se repite cada 0.5 segundos. Captura un KeyboardInterrupt (como Ctrl+C) para permitir la terminación limpia del script.

    try:
        # Monitorea continuamente el estado del sensor táctil y controla los LEDs en consecuencia
        while True:
            if touch_sensor.is_pressed:  # Check if the touch sensor is pressed
                print('You touch it!')  # Output message indicating sensor activation
                led1.off()  # Turn off LED1
                led2.on()   # Turn on LED2
            else:  # If the sensor is not pressed
                led1.on()   # Turn on LED1
                led2.off()  # Turn off LED2
    
            sleep(0.5)  # Pausa de 0.5 segundos antes de verificar nuevamente el estado del sensor
    
    except KeyboardInterrupt:
        # Maneja una interrupción de teclado (Ctrl+C) para salir del bucle limpiamente
        pass