O que é delay() no Arduino?

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.
Voltar para o blog