타이머 오버 플러를 이용하여 모터를 구동 하는 실험을 해보고 잇는데
타이머 1, 타이머3 를 사용하여 양 모터의 제어 하고 잇는데.
타이버 1,3 설정치는 1/16M *8*1000 을 0.5msec 하여 2khz 신호를 주고 잇습니다..
CCR1A = 0x00; /* Timer1 정지, 일반 모드(PWM 출력정지)로 설정 */
TCCR1B = 0x02; /* Timer1 8분주(0000 0010) 설정 */
TCCR1C = 0x00; /* Timer1 PWM 모드가 아님 설정*/
TCNT1 = 0xffff - 0x1000; /*1/16MHz x 8분주(010) x 1000 (시정수값) = 0.5 msec 주파수(2kHz) 설정 및 정지 */
오버플러러가 발생할때마다 모터에 출력 파형을 주고 잇습니다.
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
TCCR1B = 0x00; /* Timer 1 Interrupt Disable */
R_Motor= R_Motor_Table[r_phase_cnt++];
if (r_phase_cnt==4) r_phase_cnt = 0;
TCCR1B = 0x02; /* Timer1 Interrupt Enable */
}
void main(void)
{
system_init( );
var_init( );
do{
PORTA= (L_Motor & 0xf0) | (R_Motor & 0x0f);
}while(1);
}
마이컴에 프로그램을 탑제하고 돌려보면
모터가 천천히 돌면서 막 덜덜덜덜 거리는데 이유가 왜인지 모르겟습니다. ㅠㅠ
아마 오실로스코프로 찍어보면 pwm은 검출되겠지요
하지만 스텝모터가 원하는 pwm인지 고민해봐야되지 않을까 싶네요.. 스텝모터 관련내용들을 보시면 이유를 아실꺼 같네요.
네 PWM 파형은 나옵니다. 스텝모터가 원하는 pwm이 어떤의미인지 모르겟어요. 어떤 면에서의 관련내용을 말슴하시는건지 모르겟어요 ㅠㅠ
회전수 를 말슴하시는건가요 ? ㅠㅠ 너무 어렵네요 ㅠㅠ;
구동주파수 영역이 있어요...pwm 주파수를 바꿔야죠..
한번에 빠른 pwm주파수를 넣어도 스텝모터가 덜덜덜하겠지요 낮은 주파수에서 점점 주파수를 올려야해요~~
스텝모터 특성나와있는 책들이 많이 잇는데요, 인터넷에도 많고..한번 읽어보시면 도움이 될꺼같네요.
많은 도움이 되었서요.