사용자 도구

사이트 도구

English

moacon:setmotorpos:index

setMotorPos

void setMotorPos (u8 motionID, u8 stChannel , u32 position)

motionID : 모션제어 모듈의 ID ( 0 부터 9 까지 )
stChannel : 채널번호
position : 위치

설명

모터의 위치를 세팅하는 함수입니다. 보통은 시스템이 시작할 때 원점위치로 모터를 회전시켜 원점을 잡는 작업을 하게 됩니다. (잉크젯 프린터의 헤드를 생각하시면 이해가 쉽습니다. ) 원점의 근접센서에서 모터이동체가 원점까지 도달했는지 여부를 판단한다음, 이 지점의 위치를 0 으로 셋팅하십시오. 그리고 그 다음부터 motorMove 함수를 이용하여 원하는 위치로 이동하는 방법으로 사용합니다. 이 함수는 Power On 후 최소한 한번은 실행해주어야 합니다.

사용예

//
// 스탭모터를 회전시키면서 회전상태를 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);
 }
} 

목록으로 가기

moacon/setmotorpos/index.txt · 마지막으로 수정됨: 2016/04/14 09:50 (바깥 편집)