① 基於單片機設計的直流電機調速系統文獻綜述怎麼寫
單片機控制的直流電機調速系統 摘要:本文採用AT89C52作為主控晶元,設計了一種直流電機高速系統。AT89C52產生單極性工作制的定頻PWM脈沖,配合驅動能力強大的L298,從而實現控制和調整直流電機轉速和轉向的功能。利用軟體編程,能夠設置多個占空比不同的脈沖,使得電機轉速可以逐步增大或減小,同時在LCD上顯示電機的工作狀態,易於觀察和識別。本設計主要由電機調速控制模塊和LCD顯示模塊組成,具有電路簡單,可靠性高,運行穩定的特點,是對於小型直流電機調速裝置的一種探究。 關鍵詞:AT89C52 定頻PWM LCD 直流電機 目 錄 1 緒論... 1 2 方案設計... 1 2.1 功能要求... 1 2.2 方案論證... 1 3 系統硬體的設計... 3 3.1 電機調速控制模塊... 3 3.2 LCD顯示模塊... 6 3.3 硬體設計總原理圖... 11 4 系統軟體的設計... 12 4.1 主程序... 12 5 調試及性能分析... 14 5.1 調試與測試... 14 6 結論... 15 7 致謝... 15 參考文獻... 17 附錄... 18
② 求用單片機和ULN2003A驅動直流電機的接法
電路圖接法:
ULN2003是大電流驅動陣列,多用於單片機、智能儀表、PLC、數字量輸出卡等控制電路中。可直接驅動繼電器等負載。輸入5VTTL電平,輸出可達500mA/50V。
ULN2003是高耐壓、大電流達林頓系列,由七個硅NPN達林頓管組成。 該電路的特點如下: ULN2003的每一對達林頓都串聯一個2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標准邏輯緩沖器來處理的數據。
ULN2003 是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應於各類要求高速大功率驅動的系統。
引腳1:CPU脈沖輸入端,埠對應一個信號輸出端。
引腳2:CPU脈沖輸入端。
引腳3:CPU脈沖輸入端。
引腳4:CPU脈沖輸入端。
引腳5:CPU脈沖輸入端。
引腳6:CPU脈沖輸入端。
引腳7:CPU脈沖輸入端。
引腳8:接地。
引腳9:該腳是內部7個續流二極體負極的公共端,各二極體的正極分別接各達林頓管的集電極。用於感性負載時,該腳接負載電源正極,實現續流作用。如果該腳接地,實際上就是達林頓管的集電極對地接通。
引腳10:脈沖信號輸出端,對應7腳信號輸入端。
引腳11:脈沖信號輸出端,對應6腳信號輸入端。
引腳12:脈沖信號輸出端,對應5腳信號輸入端。
引腳13:脈沖信號輸出端,對應4腳信號輸入端。
引腳14:脈沖信號輸出端,對應3腳信號輸入端。
引腳15:脈沖信號輸出端,對應2腳信號輸入端。
引腳16:脈沖信號輸出端,對應1腳信號輸入端。
③ 基於單片機的pwm小功率直流電機調速
直流調速器就是調節直流電動機速度的設備,上端和交流電源連接,下端和直流電動機連接,直流調速器將交流電轉化成兩路輸出直流電源,一路輸入給直流電機礪磁(定子),一路輸入給直流電機電樞(轉子),直流調速器通過控制電樞直流電壓來調節直流電動機轉速。同時直流電動機給調速器一個反饋電流,調速器根據反饋電流來判斷直流電機的轉速情況,必要時修正電樞電壓輸出,以此來再次調節電機的轉速。
直流電機的調速方案一般有下列3種方式:
1、改變電樞電壓;
2、改變激磁繞組電壓;
3、改變電樞迴路電阻。
使用單片機來控制直流電機的變速,一般採用調節電樞電壓的方式,通過單片機控制PWM1,PWM2,產生可變的脈沖,這樣電機上的電壓也為寬度可變的脈沖電壓。根據公式
U=aVCC
其中:U為電樞電壓;a為脈沖的占空比(0<a<1);VCC直流電壓源,這里為5V。
電動機的電樞電壓受單片機輸出脈沖控制,實現了利用脈沖寬度調制技術(PWM)進行直流電機的變速。
因為在H橋電路中,只有PWM1與PWM2電平互為相反時電機才能驅動,也就是PWM1與PWM2同為高電平或同為低電平時,都不能工作,所以上圖中的實際脈沖寬度為B,
我們把PWM波的周期定為1ms,占空比分100級可調(每級級差為10%),這樣定時器T0每0.01ms產生一次定時中斷,每100次後進入下一個PWM波的周期。上圖中,占空比是60%,即輸出脈沖的為0.6ms,斷開脈沖為0.4ms,這樣電樞電壓為5*60%=3V。
我們討論的是可以正轉反轉的,如果只按一個方向轉,我們就只要把PWM1置為高電平或低電平,只改變另一個PWM2電平的脈沖變化即可,,如下圖(Q4導通,Q3閉合,電機只能順時針調整轉動速度)
C語言代碼:
#include<AT89X52.h>
#define uchar unsigned char
#define uint unsigned int
sbit K5=P1^4;
sbit K6=P1^5;
sbit PWM1=P1^0;
sbit PWM2=P1^1;
sbit FMQ=P3^6;
uchar ZKB1,ZKB2;
void delaynms(uint aa)
{
uchar bb;
while(aa--)
{
for(bb=0;bb<115;bb++) //1ms基準延時程序
{
;
}
}
}
void delay500us(void)
{
int j;
for(j=0;j<57;j++)
{
;
}
}
void beep(void)
{
uchar t;
for(t=0;t<100;t++)
{
delay500us();
FMQ=!FMQ; //產生脈沖
}
FMQ=1; //關閉蜂鳴器
delaynms(300);
}
void main(void)
{
TR0=0; //關閉定時器0
TMOD=0x01; //定時器0,工作方式1
TH0=(65526-100)/256;
TL0=(65526-100)%256; //100us即0.01ms中斷一次
EA=1; //開總中斷
ET0=1; //開定時器0中斷
TR0=1; //啟動定時器T0
ZKB1=50; //占空比初值設定
ZKB2=50; //占空比初值設定
while(1)
{
if(!K5)
{
delaynms(15); //消抖
if(!K5) //確定按鍵按下
{
beep();
ZKB1++; //增加ZKB1
ZKB2=100-ZKB1; //相應的ZKB2就減少
}
}
if(!K6)
{
delaynms(15); //消抖
if(!K6) //確定按鍵按下
{
beep();
ZKB1--; //減少ZKB1
ZKB2=100-ZKB1; //相應的ZKB2增加
}
}
if(ZKB1>99)
ZKB1=1;
if(ZKB1<1)
ZKB1=99;
}
}
void time0(void) interrupt 1
{
static uchar N=0;
TH0=(65526-100)/256;
TL0=(65526-100)%256;
N++;
if(N>100)
N=0;
if(N<=ZKB1)
PWM1=0;
else
PWM1=1;
if(N<=ZKB2)
PWM2=0;
else
PWM2=1;
}
//顯現:電機轉速到最高後,也就是N為1或99時,再按一下,就變到99或1,
//電機反方向旋轉以最高速度
④ 基於單片機的無刷直流電動機控制系統設計
首先,對於一個普通二本學校的學生來說,畢業設計題目《基於單片機的無刷直流電動機控制系統設計》的難度應該是中等偏上。這個題目涉及到單片機、無刷直流電動機、控制系統的相關知識和技能,需要學生具備一定的電子、電氣和控制理論知識,同時還需要掌握一定的編程和調試技能。因此,對於一些沒有接觸過相關領域的學生來說,可能會有一定的難度。
難點主要在於以下幾個方面:
無刷直流電動機的工作原理和控制方式比較復雜,需要學生深入理解其工作原理和控制系統的工作流程。
單片機的選型和使用需要有一定的編程和調試技能,對於沒有接觸過相關領域的學生來說,可能需要花費一定的時間來熟悉單片機的使用方法。
控制系統設計需要考慮到多種因素,如電動機的特性、控制精度、響應速度等,需要進行精細的設計和調試。
對於建議,可以從以下幾個方面入手:
多閱讀相關文獻和資料,了解無刷直流電動機的工作原理和控制方式,以及單片機在控制系統中的應用和調試方法。
提前准備並熟悉相關知識和技能,如單片機編程、電路設計、控制理論等,以便更好地完成畢業設計。
與老師和同學進行交流和討論,尋求幫助和支持,共同解決問題。
注重實驗和實踐,通過實驗來驗證控制系統的可行性和穩定性,同時也可以通過實踐來加深對相關知識和技能的理解和掌握。