.. 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. - **Aprender y compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Avances exclusivos**: Obtén acceso anticipado a nuevos anuncios de productos y adelantos. - **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos. - **Promociones y sorteos festivos**: Participa en sorteos y promociones de temporada. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo! .. _2.1.3_c_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, sensación de toque fino, control preciso y menor desgaste mecánico. Componentes Necesarios ------------------------------ En este proyecto, necesitamos los siguientes componentes. .. image:: ../img/2.1.3component.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 - ELEMENTOS EN ESTE KIT - ENLACE * - Kit Raphael - 337 - |link_Raphael_kit| También puedes comprarlos por separado en los siguientes enlaces. .. 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:: ../img/2.1.3circuit.png :width: 500 :align: center Procedimientos Experimentales --------------------------------- **Paso 1:** Construir el circuito. .. image:: ../img/2.1.3fritzing.png :width: 700 :align: center **Paso 2:** Cambiar de directorio. .. raw:: html .. code-block:: cd ~/raphael-kit/c/2.1.3/ **Paso 3:** Compilar. .. raw:: html .. code-block:: gcc 2.1.3_TouchSwitch.c -lwiringPi **Paso 4:** Ejecutar. .. raw:: html .. code-block:: sudo ./a.out 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. .. note:: Si no funciona después de ejecutarlo, o aparece un mensaje de error: \"wiringPi.h: No such file or directory\", por favor consulta :ref:`install_wiringpi_pi5`. **Código** .. code-block:: c #include #include #define touchPin 0 #define led1 3 #define led2 2 int main(void) { // When initialize wiring failed, print message to screen if(wiringPiSetup() == -1){ printf(etup w"siringPi failed !"); return 1; } pinMode(touchPin, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); while(1){ // touch switch high, led1 on if(digitalRead(touchPin) == 1){ digitalWrite(led1, LOW); digitalWrite(led2, HIGH); printf("You touch it! \r\n"); } // touch switch low, led2 on if(digitalRead(touchPin) == 0){ digitalWrite(led2, LOW); digitalWrite(led1, HIGH); } } return 0; } **Explicación del Código** .. code-block:: c #define touchPin 0 #define led1 3 #define led2 2 Los pines GPIO17, GPIO22 y GPIO27 de la T_Extension Board corresponden a los GPIO0, GPIO3 y GPIO2 en wiringPi. Asigna GPIO0, GPIO3 y GPIO2 a ``touchPin``, ``led1`` y ``led2``. .. code-block:: c pinMode(touchPin, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); Configura ``led1`` y ``led2`` como salidas para escribir valores en ellos y configura ``touchPin`` como entrada para leer valores de él. .. code-block:: c while(1){ // touch switch high, led1 on if(digitalRead(touchPin) == 1){ digitalWrite(led1, LOW); digitalWrite(led2, HIGH); printf("You touch it! \r\n"); } // touch switch low, led2 on if(digitalRead(touchPin) == 0){ digitalWrite(led2, LOW); digitalWrite(led1, HIGH); } } Establece un bucle infinito, cuando tocas el módulo de interruptor táctil, ``touchPin`` está alto, ``led1`` se encenderá e imprimirá "You touch it!". Cuando ``touchPin`` está bajo, ``led2`` se encenderá. Imagen del Fenómeno ------------------------ .. image:: ../img/2.1.3touch_switch_module.JPG :width: 500 :align: center