O que é delay() no Arduino?
Share
A função delay() é um comando de software de controle de fluxo de execução que faz com que o microcontrolador interrompa e congele a execução do programa por um período de tempo predeterminado especificado em milissegundos.
Características e Riscos da Função de Pausa delay()
Parar o código de forma temporária é útil para piscar LEDs ou criar intervalos estáticos simples. Ao escrever programas em placas como o Arduino Uno R3 SMD, utilizar o delay de forma excessiva traz impactos operacionais de processamento:
- Pausa Bloqueante: Durante a execução da contagem de tempo do delay, a CPU do microcontrolador é impedida de ler sensores, executar cálculos de loops ou acionar outros atuadores físicos.
- Uso Aceitável: Indicado apenas para debouncing por software simples, rotinas de inicialização lenta de displays ou rotinas didáticas básicas.
-
Contagem e Argumentos: A função aceita valores de tempo inteiros positivos (unsigned long), onde uma chamada de
delay(1000)congela a placa por exatamente 1 segundo.
Para criar projetos complexos e multitarefas estáveis sem congelamento de leituras lógicas de sensores de segurança, o delay bloqueante deve ser substituído por lógicas de contagem via função millis().
Perguntas Frequentes (FAQ)
- O que é uma rotina bloqueante de código no microcontrolador?
- É qualquer trecho de software que prende a linha de execução da CPU impedindo-a de desviar e processar outras interações externas analógicas e eventos digitais imediatos (como botões e sensores).
- Como fazer o Arduino executar tarefas em paralelo sem usar a função delay()?
- Substitua o delay por lógicas que comparam o tempo atual lido pela função não-bloqueante
millis()com carimbos de tempo armazenados em variáveis locais de controle.