.. note:: ¡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 [|link_sf_facebook|] y únete hoy mismo. .. _2.1.3_py_pi5: 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. .. image:: ../python_pi5/img/2.1.3_touch_switch_list.png :width: 700 :align: center Es definitivamente conveniente comprar un kit completo, aquí está el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ARTÍCULOS EN ESTE KIT - ENLACE * - Kit Raphael - 337 - |link_Raphael_kit| También puedes comprarlos por separado en los enlaces a continuación. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN DEL COMPONENTE - ENLACE DE COMPRA * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_led` - |link_led_buy| * - :ref:`cpn_touch_switch` - |link_touch_buy| Diagrama Esquemático ----------------------- .. image:: ../python_pi5/img/2.1.3_touch_switch_schematic.png :width: 500 :align: center Procedimientos Experimentales ------------------------------ **Paso 1:** Construir el circuito. .. image:: ../python_pi5/img/2.1.3_touch_switch_circuit.png :width: 700 :align: center **Paso 2:** Cambiar directorio. .. raw:: html .. code-block:: cd ~/raphael-kit/python-pi5 **Paso 3:** Ejecutar. .. raw:: html .. code-block:: 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. .. warning:: Si recibe el mensaje de error ``RuntimeError: Cannot determine SOC peripheral base address``, consulte :ref:`faq_soc` **Código** .. note:: 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. .. raw:: html .. code-block:: python #!/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** #. 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. .. code-block:: python #!/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 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. .. code-block:: python # 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 #. 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. .. code-block:: python 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