Dúvida - do while

Boa noite, tenho uma duvida referente ao comando while.

A minha duvida é seguinte, quando eu chamo a comando para acionar ele vai executar um comando por um tempo, dai ele para. queria saber se tem como para essa contagem no meio como se fosse uma parada de emergência.

if(armazenavalor == 16738455) //comando acionado por controle remoto

{
while(aux<8000)//define o tempo
{

esquerda(); //aciona o comando para girar o motor para esquerda

aux++;

}
aux=0;// reseta contagem

irrecv.resume();
}

teria como colocar um botao no meio dessa programação parar a contagem?

Ola, use a instrução break para sair de uma interação do while, for, do e switch.

if (armazenavalor == 16738455) //comando acionado por controle remoto {
   while (aux<8000) //define o tempo {
       if (_Condicao_para_sair_) {
          break;
       };
       esquerda(); //aciona o comando para girar o motor para esquerda
       aux++;
   }
   aux=0;// reseta contagem
   irrecv.resume();
}

Também pode incluir uma condição and no teste do while.
while (aux<8000 && girar) {...}

Existem também a instrução continue, que pula o resto do código e continua com a interação.

break: sai da interação.
continue: deixa de executar o resto do código da interação, mas continua nela.

pksato:
Ola, use a instrução break para sair de uma interação do while, for, do e switch.

if (armazenavalor == 16738455) //comando acionado por controle remoto {

while (aux<8000) //define o tempo {
      if (Condicao_para_sair) {
          break;
      };
      esquerda(); //aciona o comando para girar o motor para esquerda
      aux++;
  }
  aux=0;// reseta contagem
  irrecv.resume();
}




Também pode incluir uma condição and no teste do while.
while (aux<8000 && girar) {...}

Existem também a instrução *continue*, que pula o resto do código e continua com a interação.

break: sai da interação.
continue: deixa de executar o resto do código da interação, mas continua nela.

Muito obrigado pelas instruções. Vou aplicar no meu codigo e verificar se a intereção com "while (aux<8000 && esquerda) {...}" da certo. e o "if (Condicao_para_sair) { break;};"

Não faz parte daqui mas nesse projeto estou utilizando um controle remoto IR. E meio que fiz a listagem de codigos do cotrole e coloquei na programação do arduino um dia anterior estava funcionando tudo os comando. Dai eu fui dormi, e no outro dia eu simplesmente liguei o arduino na energia, ele nao funciono. Fui verificar o pq nao tava funcionando o controle tava enviando outro codigo, isso normal? Ou tenho que fazer alguma alteração eu utilizei a biblioteca IRremote.h

lincon_teko:
Não faz parte daqui mas nesse projeto estou utilizando um controle remoto IR. E meio que fiz a listagem de codigos do cotrole e coloquei na programação do arduino um dia anterior estava funcionando tudo os comando. Dai eu fui dormi, e no outro dia eu simplesmente liguei o arduino na energia, ele nao funciono. Fui verificar o pq nao tava funcionando o controle tava enviando outro codigo, isso normal? Ou tenho que fazer alguma alteração eu utilizei a biblioteca IRremote.h

Olá,

Sugiro que você inicie um novo tópico para cada duvida, assim vai facilitar quando alguém for pesquisar um problema semelhante ao seu :wink:

Uma dica:

Procure ler este documento, ele pode facilitar muito sua vida:

C Programming for Arduino

rtek1000:
Olá,

Sugiro que você inicie um novo tópico para cada duvida, assim vai facilitar quando alguém for pesquisar um problema semelhante ao seu :wink:

Obrigado pela dica, eu descobrir aqui que era mal contato ai acabo funcionando certo acredito que nao precisarei abrir um novo topico pela dica.

Infelizmente acabo nao funcionando o que o @pksato me instruiu a fazer nao deu certo. Quando aciono pelo controle para executar o seguinte comando :

{    
  if( armazenavalor == 16750695)// Botao "1" para acionar os motores por um tempo. 
   {    
    while(aux<3000)//define o tempo 
   {
    if( armazenavalor == 16738455)//botao "OK" para parar de contar
      {
      break;
      };
       
    direita(); //aciona o comando para girar para direita
    
    aux++;    
   }
    aux=0;
    irrecv.resume();
    }
}

Ele esta fazendo o seguinte ele executa a ação enviado pelo controle remoto. Ele executa o comando do contador e quando clico para ele para no controle remoto ele nao para de jeito nenhum, alguem tem alguma outra solução?

Estou usando a biblioteca do IRremote.h