Arduino Forum

International => Portugues => Topic started by: lincon_teko on Nov 01, 2018, 12:53 am

Title: Dúvida - do while
Post by: lincon_teko on Nov 01, 2018, 12:53 am
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?
Title: Re: Dúvida - do while
Post by: pksato on Nov 01, 2018, 12:20 pm
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.
Title: Re: Dúvida - do while
Post by: lincon_teko on Nov 01, 2018, 02:12 pm
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
Title: Re: Dúvida - do while
Post by: rtek1000 on Nov 05, 2018, 03:22 am
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 ;)
Title: Re: Dúvida - do while
Post by: rtek1000 on Nov 05, 2018, 03:24 am
Uma dica:

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

C Programming for Arduino (https://doc.lagout.org/programmation/C/C%20Programming%20for%20Arduino%20%5BBayle%202013-05-17%5D.pdf)
Title: Re: Dúvida - do while
Post by: lincon_teko on Nov 13, 2018, 03:08 am
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.
Title: Re: Dúvida - do while
Post by: lincon_teko on Nov 13, 2018, 03:13 am
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