Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Simplificar código

$
0
0
horpos começa com 90, e verpos começa com 0. verpos só começa a aumentar quando chega a 90, que é quando horpos passa pelos 180 e volta aos 90. Eu não percebo muito bem o problema em termos reais, mas vejo que verpos vai ficar estacado nos 90 (no codigo inicial também era assim). Podias eliminar o if/else dos verservo e fazer algo semelhante como o horservo: void motion_2(){ for (int dir = 1; dir == 1 || horpos > valor_inicial_horpos; horpos += 2*dir, verpos += dir) { horservo.write(horpos); delay(VSPEED); verservo.write(verpos) delay(HSPEED); if (horpos >= 180 + valor_inicial_horpos) { dir = -1; horpos -= 2; verpos -= 1; continue; } Print_Data(); } } horpos vai até 180 + init e volta ao init. verpos vai até 90 + init e volta init. No caso de 180 ser o maximo e 0 o minimo (que passas pelas funções de versvo e horservo), e o valor inicial do horpos não poder ser 0 e o do verpos menos ou igual a 90, tens de criar duas variaveis de direção, uma para o verpos e outra para o horpos. Mas parece que não é o teu problema.

Viewing all articles
Browse latest Browse all 14700