본문 바로가기

Lab./Quadcopter

변속기를 통한 BLDC 모터구동


변속기에 MCU의 PA0를 연결하고 PF0를 통하여 전원분배를 통한 전압값을 읽고
전압값에 비례하여 모터드라이버 제어신호를 출력하는 회로도와 코드입니다.

모터드라이버의 경우 일반적으로

1ms~ 2ms 의 High 값을 통하여 모터의 RPM 을 제어하는듯 합니다.
(물론 변속기 마다 다르긴 하겠죠....)



BLDC 모터드라이버 회로도





void main(void){
    int i=0;
   unsigned int adc=0;
//ADC SETTING
PORTF=0x00;
DDRF=0x00;

ADMUX |= (0<<REFS1) | (0<<REFS0 ) & (0b11100000) ;
ADCSRA |= (1<<ADEN) |(1<<ADSC) | (1<<ADFR);

    PORTA=0x00;
    DDRA=0x01;
       while(1){
        i=ADCW;
        PORTA.0=1;
        delay_ms(1);
        while(i--)
        {
            delay_us(1);          

 


        }
        PORTA.0=0;
        delay_ms((unsigned int)4);
       }
}