유니폴라 1상 2여자 스탭모터에 뉴티씨사 위제품을 모터드라이브로 사용하고있습니다.
여기서 문제가되는게 직진을 구동하려고
int step_f[]={0x88, 0xcc, 0x44, 0x66, 0x22, 0x33, 0x11, 0x99};
int x =0;
DDRD = 0xff;
모터구동
PORTD = step_f[x];
x++;
if(x==7)x=0;
이러한식으로 구동을하였고 모터는 일단잘돌아갑니다 하지만 문제가되는게 양쪽모터 모두 같은방향으로 회전되
직진이안됩니다.
step_f배열이문제인것같아
int step_f[]={0x89, 0xc1, 0x43, 0x62, 0x26, 0x34, 0x1c, 0x98};
로도바꿔보고
심지어
int step_f[]={0x80, 0xc0, 0x40, 0x60, 0x20, 0x30, 0x10, 0x90};
로 한쪽 출력을 모두 0으로 만들어버려도 양쪽이 동시에 똑같은 방향으로 회전합니다.
아직이유를찾지는못했네요
원래
PORTD &= 0x0F;
PORTD |= step_f[x];
PORTD &=0xF0;
PORTD |= step_f[x];
이런식으로 상위비트 하위4비트 따로구동했을때는 되긴했는데 이렇게하면 양쪽 모터의 오차가 생겨버립니다. 혹 원인이나 해결책이 뭔지알수있을까요