Arduino Nano ESP32 - Botão - Pressão Longa e Pressão Curta
Este tutorial mostra como usar o Arduino Nano ESP32 para detectar a pressão longa e a pressão curta. Em detalhes, vamos aprender:
- Como detectar a pressão curta no botão
- Como detectar a pressão longa no botão
- Como detectar tanto a pressão longa quanto a pressão curta
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Botão
Temos tutoriais específicos sobre o botão. Cada tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação ao ESP32, o código do Arduino Nano ESP32... Saiba mais sobre eles nos links a seguir:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Este tutorial usará o resistor pull-up interno. O estado do botão é HIGH em repouso e LOW quando pressionado.
Como Detectar a Pressão Curta
- Meça o tempo entre os eventos de pressionado e solto.
- Se a duração for menor que um tempo predefinido, o evento de pressão curta é detectado.
Vamos ver passo a passo:
- Defina quanto tempo dura, no máximo, uma pressão curta
- Detecte que o botão foi pressionado e salve o instante do pressionamento
- Detecte que o botão foi solto e salve o instante da soltura
- Calcule a duração do pressionamento
- Determine a pressão curta comparando a duração do pressionamento com o tempo de pressão curta definido.
Código do Arduino Nano ESP32 para detectar a pressão curta
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Faça o upload do código acima para o Arduino Nano ESP32 pela Arduino IDE
- Pressione o botão rapidamente várias vezes.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
※ Nota:
O Serial Monitor pode imprimir várias pressões curtas para um único pressionamento. Esse é um comportamento normal do botão. Esse comportamento é chamado de “fenômeno de chattering”. Vamos aprender como eliminar esse problema mais adiante neste tutorial.
Como Detectar a Pressão Longa
Existem dois casos de uso para detectar a pressão longa.
- O evento de pressão longa é detectado logo depois que o botão é solto
- O evento de pressão longa é detectado enquanto o botão está sendo pressionado.
No primeiro caso:
- Meça a duração entre o evento de pressionado e o evento de solto.
- Se a duração for maior que um tempo predefinido, o evento de pressão longa é detectado.
No segundo caso: enquanto o botão está sendo pressionado, faça o processo abaixo repetidamente:
- Meça o tempo de pressionamento.
- Se a duração for maior que o tempo predefinido, o evento de pressão longa é detectado.
- Caso contrário, repita o processo até o botão ser solto
Código do Arduino Nano ESP32 para detectar a pressão longa ao soltar
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Faça o upload do código acima para o Arduino Nano ESP32 pela Arduino IDE
- Pressione e solte o botão depois de um segundo.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
Código do Arduino Nano ESP32 para detectar a pressão longa durante o pressionamento
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Faça o upload do código acima para o Arduino Nano ESP32 pela Arduino IDE
- Pressione e solte o botão depois de vários segundos.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
Como Detectar a Pressão Longa e a Pressão Curta
Pressão Curta e Pressão Longa após soltar
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Faça o upload do código acima para o Arduino Nano ESP32 pela Arduino IDE
- Pressione o botão de forma longa e de forma curta.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
※ Nota:
O Serial Monitor pode mostrar várias detecções de pressão curta durante uma pressão longa. Esse é o comportamento normal do botão. Esse comportamento é chamado de “fenômeno de chattering”. O problema será resolvido na última parte deste tutorial.
Pressão Curta e Pressão Longa Durante o pressionamento
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Faça o upload do código acima para o Arduino Nano ESP32 pela Arduino IDE
- Pressione o botão de forma longa e de forma curta.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
Pressão Longa e Pressão Curta com Debounce
Em muitas aplicações, é muito importante fazer o debounce do botão.
O debounce é um pouco complicado, especialmente ao usar vários botões. Para deixar tudo simples para os iniciantes, criamos uma biblioteca chamada ezButton.
Vamos usar essa biblioteca nos códigos abaixo
Pressão Curta e Pressão Longa com debounce após soltar
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Instale a biblioteca ezButton. Veja Como Fazer
- Faça o upload do código acima para o Arduino Nano ESP32 pela Arduino IDE
- Pressione o botão de forma longa e de forma curta.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
Pressão Curta e Pressão Longa com debounce Durante o Pressionamento
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Instale a biblioteca ezButton. Veja Como Fazer
- Faça o upload do código acima para o Arduino Nano ESP32 pela Arduino IDE
- Pressione o botão de forma longa e de forma curta.
- Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
Vídeo
Por Que Precisamos de Pressão Longa e Pressão Curta
- Para economizar o número de botões e de pinos de entrada digital. Um único botão pode ter duas ou mais funções. Por exemplo, pressão curta para ligar a luz, pressão longa para ligar o ventilador.
- Use a pressão longa em vez da pressão curta para evitar pressionamentos acidentais. Por exemplo, alguns tipos de dispositivos usam o botão para restaurar os padrões de fábrica. Se o botão for pressionado por acidente, isso é perigoso.