Estou usando o laço for pra movimentar um servo motor o código e assim  for(pos = 90; pos < 180; pos = pos +10)  só que quando ele chega na posição 180 eu quero q ele pare ai usei o código assim 

for(pos = 90; pos < 180;){

if(pos !=180){

pos = pos +10

 }

}

então coloquei todo esse código num void porem preciso que depois que ele execute essa função ele volte para 90 graus porém ele não volta por que esta travado pelo "!" alguém sabe um método com que pare de incrementar a variável.

Ou se tiver outra maneira de usar o servo pode ser também e pra um robô bípede 

Exibições: 762

As respostas para este tópico estão encerradas.

Respostas a este tópico

Segue uma forma:

for(pos = 90; pos < 180;){

  if(pos !=180){

    pos = pos +10

  }esle{

   return;

  }

}

Mais detalhes:

http://arduino.cc/en/Reference/Return

Abraço,

Warley Rocha Mendes

Cara testei aqui e não funcionou ele volta pra posição inicial 

ta vo tenta depois aviso se funcionou 

Vc quer que ele volte para 90 quando chegar em 180?

Se for isso, segue o código:

for(pos = 90; pos < 180;){

  if(pos !=180){

    pos = pos +10

  }esle{

   pos = 90;

  }

}

eu estou fazendo um robô bípede  ai eu preciso q ele incline o corpo ai eu uso esse código pra ele inclina

for(pos = 90; pos < 180;){

if(pos !=180){

pos = pos +10

 }

}

Só que depois que ele termina os movimentos dos outros servos eu preciso que esse servo volte para posição 90 ai criei outro for pra ele volta aos noventa só que ele não volta por que eu usei o "!" ai o código não deixa o servo sair de 180 graus por isso queria outro método que não utilize o "!" para parar de incrementar ou decrementar a variável "pos".

 

Amigo, falou uma coisa chamada lógica no seu código.  Você quer que ele volte para 90 certo? Mas 90 != 180 então se vc usar uma condição do tipo if(pos != 180) {faça algo} quando você mandar ele voltar para 90, ele vai voltar a incrementar até 180...  Faça o laço for normalmente para ir incrementando até 180 e depois sair do laço....Logo abaixo do for mande um motor.write(90)... Assim:

for(int pos = 90; pos < 180; pos += 10)

{

motor.write(pos);

}

motor.write(90);

so q quando ele chega a 180 eu quero que ele pare dai tem outros servos que precisam se movimentar e quando os outros acaba esse tem que voltar a 90 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço