ESP8266 - LED - Piscar Sem Delay
Vamos imaginar que o ESP8266 tem duas tarefas a cumprir: piscar um LED e monitorar o estado de um botão que pode ser pressionado a qualquer momento. Se usarmos a função delay() (como explicado em um tutorial anterior), o ESP8266 pode perder alguns acionamentos do botão. Em outras palavras, o ESP8266 não conseguiria executar completamente a segunda tarefa.
Este tutorial ensina como fazer o ESP8266 piscar um LED e monitorar o estado de um botão sem perder nenhum dos acionamentos.
Vamos ver três exemplos e comparar as diferenças entre eles:
- ESP8266 piscando um LED com a função delay()
- ESP8266 piscando um LED com a função millis()
- ESP8266 piscando um LED com a biblioteca ezLED
Este método não se limita a piscar um LED e verificar o estado do botão. Em geral, ele permite que o ESP8266 realize várias tarefas simultaneamente sem que uma bloqueie a outra.
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 (pinagem, funcionamento, programação ...), os tutoriais a seguir podem ajudar:
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.
Código ESP8266 - Com Delay
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a primeira vez que você usa o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Conecte o cabo USB ao ESP8266 e ao PC.
- Abra o Arduino IDE e selecione a placa e a porta corretas.
- Copie o código e abra-o no Arduino IDE.
- Clique no botão Upload do Arduino IDE para compilar e fazer o upload do código para o ESP8266.

- Abra o Serial Monitor.
- Pressione o botão quatro vezes.
- Confira o LED; ele alternará entre ligado e desligado a cada segundo.
- Confira a saída no Serial Monitor.
- No Serial Monitor, alguns acionamentos não foram registrados. Isso acontece porque, durante o delay, o ESP8266 não consegue executar nenhuma tarefa. Consequentemente, ele não consegue detectar o evento de pressionamento.
Código ESP8266 - Sem Delay
Passos Rápidos
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Execute o código e pressione o botão 4 vezes.
- Confira o LED, que alternará entre LIGADO e DESLIGADO em intervalos regulares de um segundo.
- Confira a saída no Serial Monitor.
- Todas as ocorrências urgentes foram identificadas.
Explicação do Código
Confira a explicação linha por linha contida nos comentários do código-fonte!
Adicionando Mais Tarefas
O código do ESP8266 abaixo
- Faz dois LEDs piscarem com intervalos diferentes.
- Verifica o estado do botão.
Vídeo
Extensibilidade
Este método permite que o ESP8266 realize várias tarefas simultaneamente, sem que uma tarefa bloqueie a outra. Por exemplo, enviar uma requisição para a Internet e esperar pela resposta, enquanto também pisca LEDs indicadores e monitora o botão de cancelar.