로봇을 설정된 수만큼 이동 한 다음 정지 시키려고합니다. 그러나 루프는 무한히 실행되는 것처럼 보입니다. 내가 void loop()를 사용하는 방식에 실수가 있습니까? 아니면 아마도 'for'루프를 작성한 방식으로 오류가 있습니까?로봇 세트 이동 수 (Arduino)
// walkerForward.pde - Two servo walker. Forward.
// (c) Kimmo Karvinen & Tero Karvinen http://BotBook.com
// updated - Joe Saavedra, 2010
#include <Servo.h>
Servo frontServo;
Servo rearServo;
int centerPos = 90;
int frontRightUp = 75;
int frontLeftUp = 120;
int backRightForward = 45;
int backLeftForward = 135;
void moveForward(int steps)
{
for (int x = steps; steps > 0; steps--) {
frontServo.write(centerPos);
rearServo.write(centerPos);
delay(100);
frontServo.write(frontRightUp);
rearServo.write(backLeftForward);
delay(100);
frontServo.write(centerPos);
rearServo.write(centerPos);
delay(100);
frontServo.write(frontLeftUp);
rearServo.write(backRightForward);
delay(100);
}
}
void setup()
{
frontServo.attach(2);
rearServo.attach(3);
}
void loop()
{
moveForward(5);
}
그 출구 (0)이 지원되지 않습니다 생각합니다. "for (;;) {}"를 사용하는 것이 더 좋습니다. –
@EranW [지원됩니다.] (http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga137096a48cc0c731052cadfb69c39b34) –
하나 OP가 로봇이 결국 5 단계 이상을 이동하여 프로그램을 종료하기를 원하기 때문에이 대답은 좋은 방법이 아닙니다. –