.. 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:
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`.
**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