Arduino - LED - Piscar Sem Delay
Imagine que o Arduino precisa fazer duas tarefas: piscar o LED e verificar o estado do botão, que pode ser pressionado a qualquer momento. Se usarmos a função delay() (descrita em um tutorial anterior), o Arduino pode perder alguns eventos de pressionamento. Em outras palavras, o Arduino não consegue fazer totalmente a segunda tarefa.
Neste tutorial, vamos aprender como o Arduino pisca o LED e verifica o estado do botão sem perder nenhum evento de pressionamento.
Vamos ver os três exemplos abaixo e comparar a diferença entre eles.
- O Arduino pisca o LED usando a função delay()
- O Arduino pisca o LED usando a função millis()
- O Arduino pisca o LED usando a biblioteca ezLED
※ Nota:
- Este método não serve apenas para piscar o LED e verificar o estado do botão. De forma geral, este método permite que o Arduino faça várias tarefas ao mesmo tempo sem que uma bloqueie a outra.
- Este tutorial traz um conhecimento aprofundado que ajuda você a entender o princípio de funcionamento. Para facilitar, você pode usar a biblioteca Arduino - LED.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 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, como funcionam, como programar...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código Arduino - Com Delay
Passos Rápidos
- Conecte o Arduino ao PC por meio do cabo USB
- Abra o Arduino IDE e selecione a placa e a porta corretas
- Copie o código acima e abra-o no Arduino IDE
- Clique no botão Upload do Arduino IDE para carregar o código no Arduino

- Abra o Serial Monitor
- Pressione o botão 4 vezes
- Observe o LED: o LED alterna entre LIGADO/DESLIGADO a cada segundo
- Veja a saída no Serial Monitor
- No Serial Monitor, alguns pressionamentos foram perdidos. Isso acontece porque, durante o tempo de delay, o Arduino NÃO CONSEGUE fazer nada. Por isso, ele não consegue detectar o evento de pressionamento.
Código Arduino - Sem Delay
Passos Rápidos
- Execute o código acima e pressione o botão 4 vezes
- Observe o LED: o LED alterna entre LIGADO/DESLIGADO a cada segundo
- Veja a saída no Serial Monitor
- Todos os eventos de pressionamento foram detectados.
Explicação do Código
Leia a explicação linha por linha nos comentários do código!
Adicionando Mais Tarefas
O código abaixo pisca dois LEDs com intervalos diferentes e verifica o estado do botão.
Vídeo
Extensibilidade
Este método pode ser usado para que o Arduino faça várias tarefas ao mesmo tempo sem que uma bloqueie a outra. Por exemplo, enviar uma requisição para a Internet e esperar a resposta; enquanto espera a resposta, piscar alguns LEDs indicadores e verificar o botão de cancelar.