ESP8266 - Sensor táctil

Este tutorial explica cómo usar el sensor táctil capacitivo con ESP8266. En detalle, aprenderemos:

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor Táctil
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor táctil

Un sensor de toque capacitivo, también conocido como botón táctil o interruptor táctil, se usa comúnmente para controlar dispositivos, como una lámpara táctil. Tiene la misma función que un botón, pero se usa en lugar de un botón en muchos dispositivos modernos debido a su aspecto elegante.

Esquema de pines del sensor táctil

El sensor táctil tiene tres pines:

  • Pin GND: Debe conectarse al voltaje de tierra (0V).
  • Pin VCC: Debe conectarse al voltaje VCC (5V o 3.3V).
  • Pin SIGNAL: Este es un pin de salida. Estará en bajo cuando no se toque y en alto cuando se toque. Este pin debe conectarse a un pin de entrada del ESP8266.
Pinout del sensor táctil

Cómo funciona

  • Cuando el sensor no está siendo manipulado, el pin de señal del sensor está en un nivel bajo.
  • Sin embargo, cuando se toca el sensor, el pin de señal del sensor está en un nivel alto.

ESP8266 - Sensor táctil

El pin SIGNAL del sensor táctil está conectado a un pin de entrada del ESP8266. Podemos determinar si se ha tocado el sensor táctil examinando el estado del pin del ESP8266.

Diagrama de Cableado

Diagrama de cableado del sensor táctil ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

Cómo programar para el sensor táctil

  • Configura el pin ESP8266 en modo de entrada digital usando la función pinMode(). Por ejemplo:
pinMode(D7, INPUT);
  • Leer el estado del pin ESP8266 mediante la función digitalRead().
int inputState = digitalRead(D7);

※ Nota:

Existen dos escenarios comúnmente utilizados:

  • El primero: Si el estado de entrada es ALTO, realiza una acción. Si el estado de entrada es BAJO, ejecuta la acción opuesta.
  • El segundo: Si el estado de entrada cambia de BAJO a ALTO (o ALTO a BAJO), realiza una acción.

Seleccionamos uno de ellos según el propósito de la aplicación. Por ejemplo, si queremos usar un sensor táctil para controlar un LED:

  • Si el objetivo es que el LED esté ENCENDIDO cuando se toque el sensor y APAGADO cuando NO se toque el sensor, DEBEMOS usar el primer escenario.
  • Si el objetivo es que el LED cambie entre ENCENDIDO y APAGADO cada vez que toquemos el sensor, DEBEMOS usar el segundo escenario.

Sensor táctil - Código ESP8266

El tutorial proporciona dos ejemplos de código:

  • ESP8266 lee el valor del sensor táctil y lo imprime en el Monitor Serial.
  • ESP8266 detecta si el sensor está tocado o liberado.

ESP8266 lee el valor del sensor táctil y lo imprime en el Monitor Serial

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-touch-sensor */ #define SENSOR_PIN D7 // The ESP8266 NodeMCU input pin that connects to the sensor's SIGNAL pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); // print state to Serial Monitor Serial.println(state); }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Selecciona la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Copia el código y ábrelo en el Arduino IDE.
  • Haz clic en el botón Upload en el IDE para transferir el código al ESP8266.
  • Coloca tu dedo sobre el sensor y luego retíralo.
  • Comprueba la salida en el Monitor Serial.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP8266 detecta si el sensor está tocado o liberado

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-touch-sensor */ #define SENSOR_PIN D7 // The ESP8266 NodeMCU input pin that connects to the sensor's SIGNAL pin int prev_state = LOW; // The previous state from the input pin int touch_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: touch_state = digitalRead(SENSOR_PIN); if(prev_state == LOW && touch_state == HIGH) Serial.println("The sensor is touched"); else if(prev_state == HIGH && touch_state == LOW) Serial.println("The sensor is released"); // save the the last state prev_state = touch_state; }

Pasos R\u00e1pidos

  • Copia el código y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y subir el código al ESP8266.
  • Mantén el dedo tocando el sensor.
  • Revisa el resultado en el Monitor Serial.
COM6
Send
The sensor is touched
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Quita el dedo del sensor.
  • Revisa el Monitor de serie para obtener el resultado.
COM6
Send
The sensor is touched The sensor is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de Funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!