Suspende a execução do programa pelo tempo (em milisegundos) especificado como parâmetro. (Em um segundo há 1.000 milisegundos.)
Parâmetros
ms (unsigned long): o número de milisegundos em que o programa ficará com a execução em suspenso.
Retorno
nenhum
Exemplo
int ledPin = 13; // LED conectado ao pino digital 13
void setup()
{
pinMode(ledPin, OUTPUT); // marca 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
}
Cuidado
Embora seja fácil criar um LED piscando com a função delay(), e muitos programas usam intervalos curtos para tarefas como a de filtrar ruídos, o uso do delay() em um programa tem aspectos negativos importantes. Nenhuma leitura de sensores, cálculo matemático, ou manipulação de pinos pode seguir durante a execução desta função, portanto muitas outras funções ficam em espera. Para controles de tempo alternativos veja a função millis() e e seu programa de exemplo. Programadores com mais conhecimento normalmente evitam o uso de delay() para cronometrar eventos mais logos do que 10 milisegundos, a não ser que o programa seja muito simples.
Algumas coisas de fato continuam acontecendo enquanto a função delay() está controlando o chip ATmega porque as interrupções não são desabilitadas. A comunicação que aparece no pino RX continua sendo gravada. os pinos e as leituras de PWM (analogWrite) são mantidos, e as interrupções continuam funcionando.
0 comentários:
Postar um comentário