모터의 설정 중 빠르게 멈추는 동작(fast stop)과 부드럽게 멈추는 동작 (free running stop)이 있습니다. stop 비율 값이 클수록 빠르게 멈추고 작을수록 부드럽게 멈춥니다. 빠른 라인트레이싱을 하기 위해서는 빠르게 멈추는 것이 좋고 물건을 싣고 달릴 때는 부드럽게 멈추는 것이 좋습니다. 모터마다 특성이 다르기 때문에 적절한 값을 지정해 주어야 합니다.
motor함수로 같은 속도로 직진하고 정지동작을 하면 정지하면서 방향이 틀어지면 여러 원인중에 모터의 편차나 특성으로 양쪽의 세기가 다르기 때문 입니다.
대부분 휘어지면서 정지하는 이유는 모터편차 보다는 로봇의 조립상태에따라 바퀴에에 바닥에 닿는 부분(8채널 센서보드의 바닥지지용 LED)이 동일한 높이가 아닌 한쪽만 바닥에 닿아서 마찰력으로 휘어지는 경우가 많습니다.
그래도 휘어진다면 세게 정지되는 부분의 모터의 STOP비율의 숫자를 줄여서 맞추도록 합니다.
①, ② 왼쪽, 오른쪽 모터STOP비율 : 0 ~ 255 값이 작을수록 부드럽게 멈춤 값이 클수록 빠르게 멈춤
motorstop(255,255); //최대한 빠르게 멈추도록 설정
motor(20,20,500); //0.5초 전진
motor(0,0,500); //0.5초 동안 빠르게 정지
delay(2000);
motorstop(0,0); //최대한 부드럽게 멈추도록 설정
motor(20,20,500); //0.5초 전진
motor(0,0,500); //0.5초 동안 부드럽게 정지
부드러운 정지를 사용하는 경우는 로봇이 물건을 적재하여 움직이려고 하는 경우에 사용하게 된다.
상황에 따라 사용하는 모터의 편차로 정지하면서 휘어지는 경우에 양쪽 설정을 조정하여 직선 방향으로 정지하도록 설정해서 사용한다.