모터 > 변속기 - Davide Gironi - startup_motor

TODAY886 TOTAL2,934,343
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 모터 | BLDC모터 | 변속기 - Davide Gironi - startup_motor

페이지 정보

작성자 키트 작성일2017-09-05 15:17 조회1,635회 댓글0건

본문

저속에서는 ADC 값이 작아서 쓰지 못합니다.

따라서 어느정도 속도가 붙을 때까지 스텝모터 돌리듯이 그냥 돌려서 가속 시켜줍니다.

//---------------------------------------------------------------------------------------------------------
#define STARTUP_commutS 29
//
U_I startup_delays[30]={                  //[30] //setup startup delays array 10ms-->1.5ms(1000rpm-->6666rpm)
    400,380,360,320,280,240,200,160,120,110,100,96,92,88,84,80,76,72,71,70,69,68,67,66,65,64,63,62,61,60
};
//
void dly_25us(U_I dly){ U_I i; for(i=0;i<dly;i++)delay_us(25); }
//
void startup_motor(){ /* * startup motor cicle */
    U_C i=0,j=0;
    commut_step=0;                      // reset to first commut
    for(;;){                            // run commuts
        FET_PORT=commut_table[commut_step];
        if(commut_step==0){
            if(++i>1){ i=0; if(++j==STARTUP_commutS)break; }
        }
        dly_25us(startup_delays[j]);
        if(dir){ if(++commut_step>5)commut_step=0; } // do next commut
        else   { if(--commut_step<0)commut_step=5; } // do next commut
    }
}
//---------------------------------------------------------------------------------------------------------


U_I startup_delays[30]={                  //[30] //setup startup delays array 10ms-->1.5ms(1000rpm-->6666rpm)
    400,380,360,320,280,240,200,160,120,110,100,96,92,88,84,80,76,72,71,70,69,68,67,66,65,64,63,62,61,60
};

배열 모양은 스텝모터 가감속 제어에 사용한 테이블과 비슷하죠?
큰 차이가 있다면 스텝모터는 가속을 서서히 해야지 탈조하지 않지만 BLDC는 고속으로 가속 할 수 있습니다.
따라서 배열 갯수가 30개 밖에 안됩니다.
//
void dly_25us(U_I dly){ U_I i; for(i=0;i<dly;i++)delay_us(25); }
        dly_25us(startup_delays[j]);
딜레이 함수를 사용해서 만들어지는 딜레이 시간은
첫번째 배열 값은 startup_delays[ 0] 400*25=10000us=10ms
마지막 배열 값은 startup_delays[30]  60*25= 1500us=1.5ms

주석에 적힌 rpm을 보죠
1000rpm은 초당 16.666666666666666666666666666667회전, 1회전당 주기는 0.06sec=60ms
6666rpm은 초당 111.1회전, 1회전당 주기는 0.0090009sec=9.0009ms

첫번째 배열의 딜레이 경우 6스텝 실행 시간은 10ms*6=60ms
마지막 배열의 딜레이 경우 6스텝 실행 시간은 1.5*6=9ms입니다.
예제에서 사용한 CDROM 디스크는 6스텝으로 1회전하나봅니다.

댓글 0

조회수 1,635

등록된 댓글이 없습니다.

모터HOME > 모터 > BLDC모터 목록

게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기