基于ATmega8的直流電機PWM調速控制系統(tǒng)設計與實現
3、控制程序
以下是ATmega8單片機實現電機控制的部分程序:
PWM控制器的初始化:
voidtimer1_init(void)
{ OCR1A=0; //初始化為0,電機停止
OCR1B=0; //初始化為0,電機停止
TCCR1A=(1TCCR1B=(1 TCNT1=1;
CLR_IN1;
SET_IN2;
CLR_IN3;
SET_IN4;
}
定時器0中斷服務函數,用于控制PWM1A的時間:
SIGNAL(SIG_OVERFLOW0)
{ if(Timer0_TickPWM1A_counter)
{ Timer0_Tick++;}
else{printf(ACK:);
SET_IN3;
SET_IN4;
OCR1A=0;
TIMSK=~_BV(TOIE0);
}
}
電機正轉,speed為速度(0-255可調),choose為電機通道選擇(R為右、L為左):
voidfor_ward(ucharspeed,charchoose)
{ if(ch=='R')
{ OCR1B=speed; //PWM1B_EN;
SET_IN1;
CLR_IN2; }
Else
{ OCR1A=speed;//PWM1A_EN;
SET_IN3;
CLR_IN4; }
}
五、結語
利用ATmega8單片機產生的PWM信號,加入數字PID算法實現對電機速度的控制,提高了系統(tǒng)的控制精度,保證了電機轉速的穩(wěn)定性;電機的啟動、停止、左右轉和速度都由程序定義,調試時只需修改PWM信號占空比即可實現速度控制,改變輸出口電平即可實現電機正反轉,無須改變系統(tǒng)硬件電路,即可實現各種控制,能有效縮短開發(fā)周期,提高效率;結合了受限倍頻單極性可逆PWM電機驅動電路,增強了系統(tǒng)的驅動能力,提高了系統(tǒng)的可靠性和性價比。電路設計簡單,電機控制方便,有利于廣泛推廣。本文引用地址:http://www.bjwjmy.cn/article/162036.htm
pid控制器相關文章:pid控制器原理
pwm相關文章:pwm原理
脈寬調制相關文章:脈寬調制原理
評論