ESP32 - Botón - Pulsación larga / Pulsación corta
Este tutorial explica cómo usar el ESP32 para detectar la pulsación larga y la pulsación corta. En detalle, aprenderemos:
- Cómo detectar la pulsación corta en el botón
- Cómo detectar la pulsación larga en el botón
- Cómo detectar tanto la pulsación larga como la pulsación corta
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del botón
Tenemos tutoriales específicos sobre el botón. Cada tutorial contiene información detallada e instrucciones paso a paso sobre el pinout de hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32... Obtenga más información sobre ellos en los siguientes enlaces:
Diagrama de Cableado
- Esquema de cableado entre el ESP32 y el botón montado en el PCB

This image is created using Fritzing. Click to enlarge image
Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.
- Diagrama de cableado entre ESP32 y botón de montaje en panel

This image is created using Fritzing. Click to enlarge image
Este tutorial utilizará la resistencia pull-up interna. El estado del botón es ALTO cuando está en reposo y BAJO cuando se pulsa.
Cómo detectar una pulsación corta
- Medir el tiempo entre los eventos de pulsación y liberación.
- Si la duración es menor que un tiempo predefinido, se detecta el evento de pulsación corta.
Veamos paso a paso:
- Define cuánto dura la pulsación corta máxima
- Detectar cuando se presiona el botón y guardar la hora de la pulsación
- Detectar cuándo se suelta el botón y guardar el tiempo de liberación
- Calcular la duración de la pulsación y
- Determina la pulsación corta comparando la duración de la pulsación con el tiempo de pulsación corto definido.
Código ESP32 para detectar la pulsación corta
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Carga el código anterior al ESP32 mediante Arduino IDE
- Presiona el botón varias veces de forma breve.
- Mira el resultado en el Monitor Serial. Se ve como lo siguiente:
※ Nota:
El Monitor Serial puede imprimir varias pulsaciones cortas para una sola pulsación. Este es un comportamiento normal del botón. Este comportamiento se llama el “fenómeno de rebote”. Más adelante en este tutorial aprenderemos cómo eliminar este problema.
Cómo detectar una pulsación prolongada
Hay dos casos de uso para detectar la pulsación prolongada.
- El evento de pulsación larga se detecta justo después de que se suelte el botón.
- El evento de pulsación larga se detecta mientras se mantiene pulsado el botón.
En el primer caso:
- Mide la duración entre el evento presionado y el evento liberado.
- Si la duración es mayor que un tiempo predefinido, se detecta el evento de pulsación larga.
En el segundo caso: durante el tiempo en que se mantiene pulsado el botón, realice a continuación el proceso siguiente repetidamente.
- Mide el tiempo de pulsación.
- Si la duración es mayor que el tiempo predefinido, se detecta el evento de pulsación larga.
- De lo contrario, repite el proceso hasta que se suelte el botón.
Código ESP32 para detectar pulsación larga al soltar
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Carga el código anterior al ESP32 mediante Arduino IDE.
- Presiona y suelta el botón después de un segundo.
- Ve el resultado en el Monitor Serial. Se muestra a continuación:
Código ESP32 para detectar pulsación prolongada
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Sube el código anterior al ESP32 mediante Arduino IDE
- Presiona y suelta el botón después de varios segundos.
- Ve el resultado en Monitor Serial. Es lo siguiente:
Cómo detectar tanto la pulsación larga como la pulsación corta
Pulsación corta y pulsación larga tras soltar
Pasos R\u00e1pidos
- Si esta es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en el IDE de Arduino.
- Carga el código anterior en el ESP32 mediante el IDE de Arduino.
- Realiza una pulsación larga y una pulsación corta del botón.
- Consulta el resultado en el Monitor serie. Se muestra a continuación:
※ Nota:
El Monitor Serial puede mostrar varias detecciones de pulsación corta al realizar una pulsación larga. Este es el comportamiento normal del botón. Este comportamiento se llama “fenómeno de rebote”. El problema se resolverá en la última parte de este tutorial.
Pulsación corta y pulsación larga durante la pulsación
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Carga el código anterior en el ESP32 mediante el IDE de Arduino
- Realiza una pulsación larga y una pulsación corta del botón.
- Observa el resultado en el Monitor Serial. Se muestra a continuación:
Pulsación prolongada y pulsación corta con rebote
Es muy importante eliminar el rebote del botón en muchas aplicaciones.
El rebote de los contactos es un poco complicado, especialmente cuando se usan varios botones. Para hacerlo más sencillo para los principiantes, hemos creado una biblioteca, llamada ezButton.
Utilizaremos esta biblioteca en los códigos que se muestran a continuación.
Pulsación corta y pulsación larga con anti-rebote tras soltar
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Instala la biblioteca ezButton. Consulta Cómo hacerlo
- Sube el código anterior al ESP32 mediante el IDE de Arduino
- Pulsa el botón de forma larga y corta.
- Consulta el resultado en el Monitor Serial. Se ve como a continuación:
Pulsación corta y pulsación larga con antirrebote durante la pulsación
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Instala la biblioteca ezButton. Consulta Cómo hacerlo
- Sube el código anterior al ESP32 mediante Arduino IDE
- Realiza una pulsación larga y una pulsación corta del botón.
- Consulta el resultado en el Monitor Serial. Se ve como se muestra a continuación:
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.
Por qué son necesarias la pulsación larga y la pulsación corta
- Para reducir la cantidad de botones y pines de entrada digital.
- Un solo botón puede albergar dos o más funciones. Por ejemplo, una pulsación corta para encender la luz y una pulsación larga para encender el ventilador.
- Utilice la pulsación larga en lugar de la pulsación corta para evitar pulsaciones accidentales. Por ejemplo, algunos dispositivos utilizan el botón para el restablecimiento de fábrica. Si se pulsa el botón por accidente, es peligroso.