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 commutfor(;;){ // run commutsFET_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 commutelse { 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=60ms6666rpm은 초당 111.1회전, 1회전당 주기는 0.0090009sec=9.0009ms첫번째 배열의 딜레이 경우 6스텝 실행 시간은 10ms*6=60ms마지막 배열의 딜레이 경우 6스텝 실행 시간은 1.5*6=9ms입니다.예제에서 사용한 CDROM 디스크는 6스텝으로 1회전하나봅니다.
댓글 0
조회수 1,635등록된 댓글이 없습니다.