Esta página também está disponível em outros 2 idiomas.

delay()

[Time]

Descrição

Pausa o programa por uma quantidade especificada de tempo (em milissegundos). Cada segundo equivale a 1000 milissegundos.

Sintaxe

delay(ms)

Parâmetros

ms: o número de milissegundos para pausar o programa (unsigned long)

Retorna

Nada

Código de Exemplo

O código pausa o programa por um segundo antes de trocar o estado do pino 13.

int ledPin = 13;              // LED conectado ao pino digital 13

void setup() {
  pinMode(ledPin, OUTPUT);    // configura o pino digital como saída
}

void loop() {
  digitalWrite(ledPin, HIGH); // acende o LED
  delay(1000);                // espera por um segundo
  digitalWrite(ledPin, LOW);  // apaga o LED
  delay(1000);                // espera por um segundo
}

Notas e Advertências

Mesmo que seja fácil fazer um LED piscar usando a função delay(), e muitos sketches usam delays pequenos para tarefas como debouncing de botões, o uso de delay() em um sketch possui desvantagens significantes. Nenhuma leitura de sensores, cálculos matemáticos, ou manipulação de pinos podem ocorrer durante a função delay(), para resumir, causa a pausa de qualquer atividade. Para métodos alternativos de controlar temporizações, veja o sketch Blink Sem Delay (Em Inglês), que verifica a função millis() até que o tempo suficiente tenha passado. Programadores mais habilidosos usualmente evitam o uso da função delay() para timing de eventos mais longos que dezenas de milissegundos, a menos que o sketch Arduino seja muito simples.

No entanto, certas coisas continuam a acontecer enquanto a função delay() está controlando o microcontrolador, porque a função delay não desativa interrupções. Comunicação serial recebida no pino RX é armazenada, valores PWM de (analogWrite) e estados dos pinos são mantidos, e interrupções externas irão funcionar como devem.

Ver Também