# Preciso substituir o delay

**URL:** <https://forum.fazedores.com/t/preciso-substituir-o-delay/6712>\
**Category:** Arduino\
**Created:** [Setembro 15, 2019, 2:37pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712 "2019-09-15T14:37:35Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lucas\_Donadi](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/lucas_donadi/32/3084_2.png) [@Lucas\_Donadi](https://forum.fazedores.com/u/Lucas_Donadi)\
**Post date:** [Setembro 15, 2019, 2:37pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712/1 "2019-09-15T14:37:35Z")

</div>

unsigned long clique\_tempo=0;  
unsigned long botaopressionado=0;  
int estadobotao=1;  
int cont=0;

void setup(){

DDRD=1\<\<DDD7; //pino 7 para led 1  
DDRB=1\<\<DDB0; //pino 8 para led 2  
DDRB=1\<\<DDB1; //pino 9 para led 3  
DDRD=DDRD &~(1\<\<DDD2); //pino 2 entrada para botao  
PORTD=PORTD | 1\<\<PD2; //seta 1 para o pino 2

}

void loop(){

estadobotao=PIND & 1\<\<PD2; //faz a leitura do botao

bool estadobotao2=estadobotao!=0; //verifica se o botao ta pressionado

if(estadobotao==0 && clique\_tempo==0){  
clique\_tempo=millis();  
}

if(estadobotao2){ //verifica se o botão foi solto após ser apertado  
clique\_tempo=0;  
}

if(estadobotao==0){ //verifica se o botão continua pressionado  
botaopressionado=(millis()-clique\_tempo);

```
if(botaopressionado>1000){ //verifica se o tempo é maior q 1seg para desligar todos os leds
  PORTD=PORTD & ~(1<<PD7); //desliga o led do pino 7
  PORTB=PORTB & ~(1<<PB1); //desliga o led do pino 8
  PORTB=PORTB & ~(1<<PB0); //desliga o led do pino 9
  cont=0;
  delay(500);
} 

else if(botaopressionado<=1){
  delay(1);
  cont++;

  //ordem de acendimento dos leds
  if(cont==1){
    PORTD=PORTD & ~(1<<PD7); //desliga o led do pino 7
    PORTB=PORTB & ~(1<<PB0); //desliga o led do pino 8
    PORTB=PORTB | 1<<PB1; //liga o led do pino 9
    delay(200);
  }

  if(cont==2){
    PORTD=PORTD & ~(1<<PD7); //desliga o led do pino 7
    PORTB=PORTB | 1<<PB0; //liga o led do pino 8
    PORTB=PORTB & ~(1<<PB1); //desliga o led do pino 9
    delay(200);
  }

  if(cont==3){
    PORTD=PORTD | 1<<PD7; //liga o led do pino 7
    PORTB=PORTB & ~(1<<PB0); //desliga o led do pino 8
    PORTB=PORTB & ~(1<<PB1); //desliga o led do pino 9       
    cont=0;
    delay(200);
  }

```

}  
}  
}

---

<div class="post-metadata">

**Author:** ![Arnold\_Rudge](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/arnold_rudge/32/1675_2.png) [@Arnold\_Rudge](https://forum.fazedores.com/u/Arnold_Rudge)\
**Post date:** [Setembro 16, 2019, 6:54pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712/2 "2019-09-16T18:54:58Z")

</div>

substituir por o que ?

---

<div class="post-metadata">

**Author:** ![Arnold\_Rudge](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/arnold_rudge/32/1675_2.png) [@Arnold\_Rudge](https://forum.fazedores.com/u/Arnold_Rudge)\
**Post date:** [Setembro 16, 2019, 7:18pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712/4 "2019-09-16T19:18:49Z")

</div>

minha bola crystal diz que deve ser um non-blocking delay, mas eu comprei ela do aliexpress por 3 reais com frete gratis.

---

<div class="post-metadata">

**Author:** ![Lucas\_Donadi](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/lucas_donadi/32/3084_2.png) [@Lucas\_Donadi](https://forum.fazedores.com/u/Lucas_Donadi)\
**Post date:** [Setembro 16, 2019, 8:40pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712/5 "2019-09-16T20:40:25Z")

</div>

preciso mexer num projeto e não posso usar a função delay(). precisa de algo pra desempenhar o papel dela!

---

<div class="post-metadata">

**Author:** ![Lucas\_Donadi](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/lucas_donadi/32/3084_2.png) [@Lucas\_Donadi](https://forum.fazedores.com/u/Lucas_Donadi)\
**Post date:** [Setembro 16, 2019, 8:41pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712/6 "2019-09-16T20:41:11Z")

</div>

tirar o delay do codigo sem mudar o funcionamento

---

<div class="post-metadata">

**Author:** ![Lucas\_Donadi](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/lucas_donadi/32/3084_2.png) [@Lucas\_Donadi](https://forum.fazedores.com/u/Lucas_Donadi)\
**Post date:** [Setembro 16, 2019, 8:41pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712/7 "2019-09-16T20:41:35Z")

</div>

so preciso tirar o delay do codigo mas sem mudar o funcionamento

---

<div class="post-metadata">

**Author:** ![Arnold\_Rudge](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/arnold_rudge/32/1675_2.png) [@Arnold\_Rudge](https://forum.fazedores.com/u/Arnold_Rudge)\
**Post date:** [Setembro 16, 2019, 9:06pm UTC](https://forum.fazedores.com/t/preciso-substituir-o-delay/6712/8 "2019-09-16T21:06:58Z")

</div>

olha o exemplo blink without delay , incluso no arduino  
ou  
usa um sistema como freertos com um st
