Gente, sou nova aqui e tô iniciando o estudo do arduino. Entao, eu sei que delay é uma funçaõ de tempo que quando executado pausa o programa por um período de tempo especificado. Na verdade, eu ainda não entendi a importância disso em um programa, quais problemas podem acontecer se não for usado, qual a necessidade dessa pausa, etc. Me ajudem, por favor! Obrigada
Olá @Clara_Marque, o delay, como o próprio nome está informando, de forma bruta, é uma pausa na execução de comandos pelo Microcontrolador, para entender, é bom dar uma olhadinha no exemplo clássico, nas referências do Arduino.
Esse exemplo meramente faz um LED piscar (blink):
int ledPin = 13; // LED connected to digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}
Nesse exemplo, o LED acende, e permanece aceso pelo delay de 1 segundo (1000 milisegundos), então apaga e permanece apagado pelo mesmo período de tempo e o ciclo se repete enquanto o microcontrolador estiver sendo energizado.
O que acontece se você não usar o delay: Simplesmente o LED vai acender e apagar muito rápido, de forma acurada com os ciclos de processamento do microcontrolador, talvez ficando até imperceptível o efeito, por isso, o programador determina que o microcontrolador deve baixar a bola e esperar 1 segundo antes de executar cada função, utilizando a função delay.
Há casos em que o delay é necessário para sincronizar com alguns CI’s que precisam de tempo para executar determinadas tarefas, por exemplo, se for gravar certos tipos de memória, a mesma pede um tempinho para poder terminar de gravar cada page, por isso, é necessário dar um certo delay antes de continuar a gravação, nesse caso, se a gravação não é sincronizada com o tempo de gravação, a memória não será gravada e não cumprirá a função a que se destina.
A importância dele depende da sua necessidade no programa, não traz nenhum problema(só vai esperar o tempo que vc determinou para continuar a execução) e a necessidade depende do seu objetivo (Um exemplo seria: supondo que vc queira fazer algo que alerte quando abrir a porta da sua casa. Vc pode, imediatamente ao abrir disparar um alarme ou vc pode deixar entrar e se passar 30 segundos e se a pessoa nao informar a senha em um painel, o mesmo alarme soar)
Bom dia @Clara_Marques!
Um exemplo de uso de uma função de delay seria num loop recursivo de espera de conexão do pendrive. Tipo, a cada 1 segundos você executa um método de verificação da conexão. Se em algum momento você verificar que o pendrive foi conectado, o delay deixa de ser executado e o programa continua seu processo.