void motorMove (u8 motionID, u8 stCh, u32 position)
motionID : 모션제어 모듈의 ID ( 0 부터 9 까지 ) |
stCh : 채널번호 (0 또는 1 만 사용가능) |
position: 새로운 위치 |
모터를 실질적으로 움직이게 해주는 함수입니다. Step 포트로 펄스가 출력되고, dir 포트로 방향신호가 출력됩니다. 현재위치가 0 일경우, 새로운 위치를 1000 으로 지정한다면 그 만큼 회전하게 됩니다. 현재위치를 0 으로 만들기 위해서는 setMotorPos 함수를 사용하시면 됩니다.
// // 스탭모터를 회전시키면서 회전상태를 CLCD 상에 회전수 (STAT)와 위치(POS)를 표시합니다. // #include "moacon500.h" void statprint(u32 i) { u32 j; clcdPrint(0,0,"STAT:%09d ",i); delay(20); j = getMotorPos(0,0); clcdPrint(0,1,"POS: %09d ",j); delay(20); } void cmain(void) { int i=0; clcdI2cInit(0); clcdPower(1); // lcd 의 Power 를 On delay(100); clcdCls(); clcdCsr(0); delay(2000); // 드라이버가 초기화될때까지 잠시 대기 (2 초) setMotorPos(0,0,0); // 현재위치를 0 으로 셋팅 while(1) { motorSetup(0,0,500,50000,50000); // 모터초기정보 셋팅 (50KHz 출력) motorMove(0,0,1640000); // 1640000 위치로 이동 while (i=motorStat(0,0)) { statprint(i); // 이동하는 동안 정보를 lcd 상에 표시 } delay(500); // 이동이 종료됨 i=motorStat(0,0); statprint(i); delay(3000); motorMove(0,0,0); // 원래위치로 다시 이동 while (i=motorStat(0,0)) { statprint(i); } delay(500); i=motorStat(0,0); statprint(i); delay(3000); } }