Go Down

Topic: Dúvida - do while (Read 504 times) previous topic - next topic

lincon_teko

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?

pksato

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

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.

lincon_teko

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

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

rtek1000

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 ;)
Please avoid private messages, your question may be someone's answer in the future!

rtek1000

Uma dica:

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

C Programming for Arduino
Please avoid private messages, your question may be someone's answer in the future!

lincon_teko

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 ;)
Obrigado pela dica, eu descobrir aqui que era mal contato ai acabo funcionando certo acredito que nao precisarei abrir um novo topico pela dica.

lincon_teko

#6
Nov 13, 2018, 03:13 am Last Edit: Nov 13, 2018, 03:32 am by lincon_teko
Infelizmente acabo nao funcionando o que o @pksato me instruiu a fazer nao deu certo. Quando aciono pelo controle para executar o seguinte comando :

Code: [Select]

{    
  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

Go Up