Arduino - Sensor táctil

El sensor táctil (también llamado botón táctil o interruptor táctil) se utiliza ampliamente para controlar dispositivos (p. ej., lámpara táctil). Tiene la misma funcionalidad que un botón. Se utiliza en lugar del botón en muchos dispositivos nuevos porque le da al producto un aspecto limpio.

En este tutorial, aprenderemos a usar el sensor táctil con Arduino.

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Sensor Táctil
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
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

Disposición de pines

El sensor táctil tiene 3 pines:

  • Pin GND: debe conectarse a GND (0V)
  • Pin VCC: debe conectarse a VCC (5V o 3.3V)
  • Pin SIGNAL: es un pin de salida: bajo cuando no está tocado, alto cuando está tocado. Este pin debe conectarse al pin de entrada del Arduino.
Disposición de pines del sensor táctil

Cómo funciona

  • Cuando el sensor no está tocado, el pin de señal del sensor está en nivel bajo
  • Cuando el sensor está tocado, el pin de señal del sensor está en nivel alto

Arduino - Sensor de tacto

El pin SIGNAL del sensor táctil está conectado al pin de entrada de un Arduino.

Al leer el estado del pin de Arduino (configurado como pin de entrada), podemos detectar si el sensor táctil está tocado o no.

Diagrama de Cableado

Diagrama de cableado del sensor táctil de Arduino

This image is created using Fritzing. Click to enlarge image

Cómo programar para un sensor táctil

  • Inicializa el pin de Arduino en modo de entrada digital utilizando la función pinMode(). Por ejemplo, el pin 7
pinMode(7, INPUT_PULLUP);
  • Lee el estado del pin de Arduino usando la función digitalRead().
int inputState = digitalRead(7);

※ Nota:

Hay dos casos de uso muy utilizados:

  • El primero: Si el estado de entrada es ALTO, haz algo. Si el estado de entrada es BAJO, haz otra cosa al revés.
  • El segundo: Si el estado de entrada cambia de BAJO a ALTO (o ALTO a BAJO), haz algo.

Dependiendo de la aplicación, elegimos uno de ellos. Por ejemplo, en el caso de usar un sensor táctil para controlar un LED:

  • Si queremos que el LED esté ENCENDIDO cuando se toque el sensor y APAGADO cuando el sensor NO se toque, DEBEMOS usar el primer caso de uso.
  • Si queremos que el LED alterne entre ENCENDIDO y APAGADO cada vez que toquemos el sensor, DEBEMOS usar el segundo caso de uso.
  • Cómo detectar el cambio de estado de bajo a alto
// constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // the Arduino's input pin that connects to the sensor's SIGNAL pin // Variables will change: int lastState = LOW; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); // save the the last state lastState = currentState; }

Sensor táctil - Código de Arduino

Ejecutaremos cuatro códigos de ejemplo:

  • Lee el valor del sensor táctil y lo imprime en el Monitor Serial.
  • Controla el LED según el estado del sensor.
  • Detecta si el sensor está tocado o liberado.
  • Alterna el LED cuando se toca el sensor (Este es el uso más común.)

Lee el valor del sensor táctil y lo imprime en el Monitor Serial.

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-touch-sensor */ // constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // the Arduino's input pin that connects to the sensor's SIGNAL pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput 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

  • Copie el código anterior y ábralo con el IDE de Arduino
  • Haga clic en el botón Subir en el IDE de Arduino para cargar el código en Arduino
  • Toque su dedo en el sensor y suéltelo.
  • Vea el resultado en el Monitor serie.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Controla el LED según el estado del sensor

Si se toca el sensor, enciende el LED. Si no se toca el sensor, apaga el LED.

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-touch-sensor */ // constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // the Arduino's input pin that connects to the sensor's SIGNAL pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); // control LED according to the sensor's state digitalWrite(LED_BUILTIN, state); }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código a Arduino
  • Coloca tu dedo en el sensor y manténlo presionado
  • Observa el estado del LED ⇒ El LED debería estar encendido
  • Retira tu dedo del sensor
  • Observa el estado del LED ⇒ El LED debería estar apagado

Detecta cuando se toca o se suelta el sensor

// constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // the Arduino's input pin that connects to the sensor's SIGNAL pin // Variables will change: int lastState = LOW; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); else if(lastState == HIGH && currentState == LOW) Serial.println("The sensor is is released"); // save the the last state lastState = currentState; }

Pasos R\u00e1pidos

  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Subir en Arduino IDE para cargar el código en Arduino
  • Coloque el dedo en el sensor y manténgalo presionado.
  • Vea el resultado en el Monitor Serial.
COM6
Send
The sensor is touched
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Suelta tu dedo del sensor.
  • Mira el resultado en el Monitor Serial.
COM6
Send
The sensor is touched The sensor is is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Alterna el LED cuando se toca el sensor.

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-touch-sensor */ // constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // the Arduino's input pin that connects to the sensor's SIGNAL pin // Variables will change: int lastState = LOW; // the previous state from the input pin int currentState; // the current reading from the input pin int ledState = LOW; // the current LED state void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH){ // toggle LED state if(ledState == LOW) ledState = HIGH; else if(ledState == HIGH) ledState = LOW; // control LED digitalWrite(LED_BUILTIN, ledState); } // save the the last state lastState = currentState; }

Pasos R\u00e1pidos

  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Cargar en Arduino IDE para subir el código a Arduino
  • Coloque el dedo sobre el sensor y suéltelo.
  • Compruebe el estado del LED ⇒ el LED debe estar encendido.
  • Coloque el dedo sobre el sensor y suéltelo.
  • Compruebe el estado del LED ⇒ el LED debe estar apagado.
  • Coloque el dedo sobre el sensor y suéltelo.
  • Compruebe el estado del LED ⇒ el LED debe estar encendido.

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.

※ 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!