ESP8266 - Botão - Pressão Longa e Pressão Curta
Este tutorial ensina você a usar o ESP8266 para detectar a pressão longa e a pressão curta do botão. Em detalhes, vamos ver os seguintes exemplos:
- O ESP8266 detecta a pressão curta no botão.
- O ESP8266 detecta a pressão longa no botão.
- O ESP8266 detecta tanto a pressão longa quanto a pressão curta no botão.
- O ESP8266 faz debounce para pressão longa e pressão curta.
Na seção final, exploramos como implementar o debounce em aplicações práticas. Para saber mais sobre por que o debounce é necessário para botões, consulte este artigo. Sem debounce, pode ocorrer a detecção incorreta do pressionamento de um botão.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Botão
Se você não está familiarizado com botões (pinagem, operação, programação etc.), os tutoriais a seguir podem ajudar você a aprender:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Neste tutorial, vamos usar o resistor de pull-up interno. Isso significa que o botão fica em estado HIGH quando não está pressionado e em estado LOW quando está pressionado.
Como Detectar a Pressão Curta
Calculamos o intervalo de tempo entre os eventos de pressionado e solto. Se essa duração for menor que um tempo predeterminado, detectamos um evento de pressão curta.
Determine a duração máxima de uma pressão curta.
- Determine quando o botão foi pressionado e registre o momento do pressionamento.
- Detecte quando o botão é solto e registre o momento em que ele foi solto.
- Force
- Determine o tempo de duração e a intensidade da pressão aplicada.
- Compare a duração do pressionamento com o tempo predeterminado para uma pressão curta.
- Identifique se é uma pressão curta com base na comparação.
Código ESP8266 para detectar a pressão curta
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (ex.: NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Faça o upload do código para o ESP8266 usando a Arduino IDE.
- Pressione o botão por pouco tempo várias vezes.
- Confira a saída no Serial Monitor.
※ Nota:
O Serial Monitor pode mostrar várias detecções de pressão curta para um único pressionamento. Esse é o comportamento esperado do botão e é chamado de “fenômeno de chattering”. Vamos resolver esse problema na última parte deste tutorial.
Como Detectar a Pressão Longa
Há dois cenários em que a pressão longa pode ser detectada:
- Quando o botão é solto, o evento de pressão longa será identificado
- Enquanto o botão está sendo pressionado, o evento de pressão longa será reconhecido, mesmo antes de ele ser solto.
- No primeiro caso, calculamos o intervalo de tempo entre os eventos de pressionado e solto. 2. Se a duração for maior que o tempo predeterminado, o evento de pressão longa é identificado.
No segundo caso de uso, assim que o botão é pressionado, o tempo de pressionamento é medido continuamente e o evento de pressão longa é verificado até o botão ser solto. Enquanto o botão está sendo mantido pressionado, se a duração for maior que um tempo predeterminado, o evento de pressão longa é detectado.
Código ESP8266 para detectar a pressão longa ao soltar
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (ex.: NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Faça o upload do código para o ESP8266 usando a Arduino IDE.
- Espere um segundo e depois pressione e solte o botão.
- Confira o resultado no Serial Monitor.
O evento de pressão longa só é detectado quando o botão é solto.
Código ESP8266 para detectar a pressão longa durante o pressionamento
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (ex.: NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Faça o upload do código para o ESP8266 usando a Arduino IDE.
- Espere alguns segundos e depois pressione e solte o botão.
- Veja os resultados no Serial Monitor.
O evento de pressionar e manter o botão pressionado só será detectado enquanto o botão não tiver sido solto.
Como Detectar Tanto a Pressão Longa quanto a Pressão Curta
Pressão Curta e Pressão Longa após soltar
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (ex.: NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Faça o upload do código para o ESP8266 usando a Arduino IDE.
- Pressione o botão por um tempo longo e por um tempo curto.
- Confira o resultado no Serial Monitor.
※ Nota:
O Serial Monitor pode mostrar várias detecções de pressão curta quando é feita uma pressão longa. Esse é o comportamento esperado do botão e é chamado de "fenômeno de chattering". O problema será resolvido na parte final deste tutorial.
Pressão Curta e Pressão Longa Durante o pressionamento
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (ex.: NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Faça o upload do código para o seu ESP8266 usando a Arduino IDE.
- Pressione o botão por um tempo curto e por um tempo longo.
- Confira o resultado no Serial Monitor.
※ Nota:
O Serial Monitor pode mostrar várias detecções de pressão curta quando é feita uma pressão longa. Esse é o comportamento esperado do botão e é chamado de "fenômeno de chattering". Uma solução para esse problema será apresentada na seção final deste tutorial.
Pressão Longa e Pressão Curta com Debounce
É essencial implementar o debounce no botão em várias aplicações.
O debounce pode ser complicado, principalmente quando há vários botões envolvidos. Para facilitar 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
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (ex.: NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Para instalar a biblioteca ezButton, consulte Como Fazer.
- Faça o upload do código para o ESP8266 usando a Arduino IDE.
- Mantenha o botão pressionado por um período curto ou longo.
- Confira o resultado no Serial Monitor.
Pressão Curta e Pressão Longa com debounce Durante o Pressionamento
Passos Rápidos
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (ex.: NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Instale a biblioteca ezButton. Consulte Como Fazer para ver as instruções.
- Use a Arduino IDE para fazer o upload do código para o ESP8266.
- Mantenha o botão pressionado e depois solte.
- Veja o Serial Monitor para observar o resultado.
Vídeo
Por que Precisamos de Pressão Longa e Pressão Curta
- Para reduzir a quantidade de botões, um botão pode ser usado para várias finalidades. Por exemplo, uma pressão curta pode ser usada para alternar os modos de operação, e uma pressão longa pode ser usada para desligar o dispositivo.
- As pressões longas são usadas para evitar pressionamentos acidentais. Por exemplo, alguns dispositivos usam um botão para restaurar as configurações de fábrica. Se ele for pressionado por acidente, isso pode ser perigoso. Para evitar isso, o dispositivo é projetado de modo que a restauração de fábrica só seja ativada quando o botão for pressionado por um tempo longo (ex.: por mais de 5 segundos).