Arduino Nano ESP32 - Botão LED
Este tutorial orienta você a usar o Arduino Nano ESP32 e um botão para controlar o LED. Vamos explorar dois casos de uso distintos:
Caso de Uso 1 - Sincronização entre os estados do LED e do botão, explicada assim:
- O Arduino Nano ESP32 liga o LED quando o botão é pressionado.
- O Arduino Nano ESP32 desliga o LED quando o botão não é pressionado.
Caso de Uso 2 - Alternar o estado do LED a cada pressionamento do botão, detalhado assim:
- Se o Arduino Nano ESP32 detecta uma transição do estado HIGH para LOW no botão (indicando um pressionamento), ele alterna o LED para ON se ele estiver OFF no momento, ou para OFF se ele estiver ON.
- Soltar o botão não tem impacto no estado do LED.
No Caso de Uso 2, é fundamental fazer o debounce do botão para garantir o funcionamento correto. Vamos explorar a importância do debounce comparando o comportamento do LED ao usar o código do Arduino Nano ESP32 com e sem debounce do botão.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.
Sobre o LED e o Botão
Se você não conhece o LED e o botão (incluindo pinagem, funcionamento e programação), os tutoriais a seguir podem ajudar:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Aplicação 1 - O estado do LED fica sincronizado com o estado do botão
Código Arduino Nano ESP32
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.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa Arduino Nano ESP32 e a porta COM correspondente.
- Copie o código e abra-o na Arduino IDE.
- Clique no botão Upload da Arduino IDE para compilar e fazer o upload do código para o Arduino Nano ESP32.

- Pressione o botão e mantenha-o pressionado por alguns segundos.
- Veja a mudança na condição do LED.
Você verá que o estado do LED fica sincronizado com o estado do botão.
Explicação do Código
Veja a explicação linha por linha nos comentários do código-fonte!
Aplicação 2 - O botão alterna o LED
Código Arduino Nano ESP32 - Botão Alterna o LED Sem Debounce
Explicação do Código
Você encontra a explicação nas linhas de comentário do código do Arduino Nano ESP32 acima.
No código, a expressão led_state = !led_state é igual ao código a seguir:
Passos Rápidos
- Copie o código e abra-o na Arduino IDE.
- Faça o upload do código para o Arduino Nano ESP32.
- Pressione e solte o botão várias vezes.
- Veja a mudança no estado do LED.
Você pode observar que o estado do LED é alternado toda vez que o botão é pressionado. No entanto, esse comportamento pode nem sempre ser consistente. Às vezes, o estado do LED pode ser alternado rapidamente várias vezes em um único pressionamento do botão, ou pode não alternar de jeito nenhum (alternando duas vezes em sequência rápida, o que pode ser difícil de ver a olho nu).
⇒ Para resolver esse problema, precisamos fazer o debounce do botão.
Código Arduino Nano ESP32 - Botão Alterna o LED Com Debounce
Fazer o debounce de um botão pode ser difícil para iniciantes. Felizmente, a biblioteca ezButton torna isso fácil.
Por que o debounce é necessário? Veja o tutorial Arduino Nano ESP32 - Debounce de Botão para mais informações.
Passos Rápidos
- Instale a biblioteca ezButton. Consulte Como Fazer para ver as instruções.
- Copie o código e abra-o com a Arduino IDE.
- Clique no botão Upload da Arduino IDE para fazer o upload do código para o Arduino Nano ESP32.
- Pressione e solte o botão várias vezes.
- Veja a mudança no estado do LED.
Você verá que o estado do LED é alternado exatamente uma vez a cada vez que o botão é pressionado.