Page 156 - 최강 아두이노 스마트 자동차 로봇 키트
P. 156
int tempDeg[4] = { 0, DEG_CENTER, DEG_CENTER + 40,
DEG_CENTER - 40 };
int curDeg = myservo.read(); //
if (curDeg == tempDeg[iDir])
return;
//
switch (iDir)
{
case SERVO_DIR_CENTER:
myservo.write(DEG_CENTER - 0);
break;
case SERVO_DIR_LEFT:
myservo.write(DEG_CENTER + 40);
break;
case SERVO_DIR_RIGHT:
myservo.write(DEG_CENTER - 40);
break;
default:
// 지정된 함수 인자가 아닐 경우 처리.
String errMsg = "called int setRotateServo(int ";
errMsg += iDir;
errMsg += ")";
Serial.println(errMsg);
break;
}
// delay(10); 15ms
int degRange = abs(curDeg - tempDeg[iDir]);
//degRange=(int) ((float)degRange /
(float)60.0f)*120.0f;
degRange /= 3;
degRange += 1; //
delay(degRange * 15);
}
int whereToGo(void)
{
Serial.println("finding route ...");
int retDir = decisionDirection();
// debug print each dir value;
Serial.print(g_DistanceDirValue.left);
Serial.print(" ");
Serial.print(g_DistanceDirValue.center);
Serial.print(" ");
Serial.print(g_DistanceDirValue.right);
155