Arduino Nano - LED - Piscar Sem Delay
Vamos imaginar que o Arduino Nano tenha 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 vimos em um tutorial anterior), o Arduino Nano pode deixar passar alguns dos acionamentos do botão. Em outras palavras, o Arduino Nano não consegue concluir totalmente a segunda tarefa.
Este tutorial ensina você a fazer o Arduino Nano piscar um LED e detectar o estado de um botão sem perder nenhum acionamento.
Vamos ver três exemplos e comparar as diferenças entre eles:
- Arduino Nano piscando um LED com a função delay()
- Arduino Nano piscando um LED com a função millis()
- Arduino Nano piscando um LED com a biblioteca ezLED
Esse método não se limita a piscar um LED e verificar o estado do botão. Em geral, ele permite que o Arduino Nano execute várias tarefas ao mesmo tempo, 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 (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
Veja A melhor forma de alimentar o Arduino Nano e outros componentes.
Código Arduino Nano - Com Delay
Passos Rápidos
- Conecte o seu Arduino Nano ao computador usando um cabo USB.
- 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 Arduino Nano.

- Abra o Serial Monitor.
- Pressione o botão quatro vezes.
- Veja o LED; ele vai 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 tempo de delay, o Arduino Nano não consegue executar nenhuma ação. Por isso, ele não consegue detectar o evento de pressionamento.
Código Arduino Nano - Sem Delay
Passos Rápidos
- Execute o código e pressione o botão quatro vezes.
- Veja o LED; ele vai alternar entre LIGADO e DESLIGADO em intervalos 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 Arduino Nano abaixo faz:
- Pisca dois LEDs com intervalos diferentes.
- Verifica o estado do botão
Vídeo
Extensibilidade
Esse método pode ser usado para permitir que o Arduino Nano execute várias tarefas ao mesmo tempo, sem que uma tarefa bloqueie o progresso da outra. Por exemplo, enviar uma requisição para a Internet e esperar a resposta, enquanto pisca alguns LEDs indicadores e monitora o botão de cancelar.