ESP32 - LED - Piscar Sem Delay
Um dos primeiros programas que os iniciantes executam é piscar um LED. A forma mais simples de piscar um LED é usar a função delay(). Essa função impede o ESP32 de fazer outras coisas. Tudo bem se você quiser piscar apenas um único LED. No entanto, se você quiser piscar mais LEDs ou fazer outras tarefas em paralelo, não pode usar a função delay(). Precisamos de outra solução. Este tutorial ensina como executar várias tarefas sem usar a função delay. Mais especificamente, vamos aprender a piscar um LED e verificar o estado do botão.
Vamos passar pelos três exemplos abaixo e comparar a diferença entre eles.
- ESP32 pisca o LED usando a função delay()
- ESP32 pisca o LED usando a função millis()
- ESP32 pisca o LED usando a biblioteca ezLED
Este método pode ser aplicado para permitir que o ESP32 execute várias tarefas ao mesmo tempo. Piscar o LED é apenas um exemplo.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.
Sobre LED e Botão
Temos tutoriais específicos sobre LED e botão. Cada tutorial contém informações detalhadas e instruções passo a passo sobre pinagem do hardware, princípio de funcionamento, ligação ao ESP32, código ESP32... Saiba mais sobre eles nos links a seguir:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Vamos comparar o código ESP32 que pisca o LED com e sem a função delay()
Código ESP32 - Com Delay
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Faça a ligação conforme a imagem acima.
- Conecte a placa ESP32 ao seu PC por meio de um cabo USB Type-C
- Abra a Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Copie o código acima e cole-o na Arduino IDE.
- Compile e faça upload do código para a placa ESP32 clicando no botão Upload na Arduino IDE

- Abra o Serial Monitor na Arduino IDE

- Pressione o botão 4 vezes
- Veja o LED: o LED alterna entre LIGADO/DESLIGADO periodicamente a cada segundo
- Veja a saída no Serial Monitor
- No Serial Monitor, você não verá as quatro vezes em que o estado muda para 0 (4 pressionamentos). Isso acontece porque, durante o tempo de delay, o ESP32 NÃO CONSEGUE detectar a mudança.
Código ESP32 - Sem Delay
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Execute o código acima e pressione o botão 4 vezes
- Veja o LED: o LED alterna entre LIGADO/DESLIGADO periodicamente a cada segundo
- Veja a saída no Serial Monitor
- Todos os pressionamentos foram detectados.
Explicação do Código Linha por Linha
O código ESP32 acima contém explicação linha por linha. Por favor, leia os comentários no código!
Adicionando Mais Tarefas
O código abaixo pisca dois LEDs com intervalos diferentes e verifica o estado do botão.

This image is created using Fritzing. Click to enlarge image