1. 基於proteus的51單片機開發實例22-L298N驅動直流電機
1.1. 實驗目的

圖1 L298驅動直流電機
在上一實例中,我們使用H橋驅動直流電機實現正轉、反轉。但是自己搭建電機驅動電路存在兩個問題:電路複雜;分立元器件的電性能需要嚴格一致並且穩定、可靠。在本實例中,我們用專用的電機驅動芯片L298來驅動直流電機。
1.2. 設計思路
在本例中,使用專用的電機驅動芯片L298來驅動控制直流電機,這樣做可以大大簡化電路設計,並且電路性能更為可靠和穩定。
1.3. 基礎知識
電機專用驅動芯片L298從原理上來說,也是H橋驅動電路。它的輸出功率大,輸出電流最大可達4A,最高工作電壓可到50V。用來驅動一般的大功率直流電機完全沒有問題。更為重要的是,L298的輸入控制端可以直接連到單片機的管腳上,因而非常適合單片機控制。
L298的內部結構如下圖所示。

圖2 L298內部結構
從圖中可以看出,引腳IN1~IN4是邏輯電平輸入引腳:如果接直流電機的話,IN1、IN2這兩個腳控制一個直流電機;IN3、IN4這兩個腳控制另一個直流電機。例如IN1輸入高電平1,IN2輸入低電平0,對應OUT1、OUT2兩個引腳上接的直流電機正轉;IN1輸入低電平0,IN2輸入高電平1,對應電機反轉。
ENA、ENB:L298的使能端(高電平有效),可通過這兩個端口實現PWM調速。
下圖是L298直接驅動兩路直流電機的電路圖。
圖中的D1~D8是8個續流二極管。

圖3 L298驅動兩路直流電機
這裡說到了續流二極管,我們順便來了解一下續流二極管是什麼,起什麼作用?
嚴格來說,續流二極管並不是一種真正嚴格意義上的電子元器件,一般快速恢復二極管或者肖特基二極管都可以作為續流二極管,由此可見「續流二極管」並不是一個實質的元件,它只不過是一個在電路中起到「續流」作用的二極管罷了。
「續流二極管」在電路中一般用來保護元件不被感應電壓擊穿或燒壞,以並聯的方式接到產生感應電動勢的元件兩端,並與其形成迴路,使其產生的高電動勢在迴路以續電流方式消耗,從而起到保護電路中的元件不被損壞的作用。而電機一般都是感性負載,所以在電機驅動電路中,續流二極管是少不了的。
1.4. 電路設計
圖1是本實例的電路圖。電路中,L298的IN1和IN2分別接VCC和GND,這種接法可以使直流電機正轉,如果反過來接,則直流電機反轉。
OUT1和OUT2接直流電機兩端。D1~D4這四個二極管是續流二極管。
L298的使能端ENA接單片機的一個I/O口,當該端口輸出高電平時,L298被使能,電機開始轉動。反之,電機停止轉動。
1.5. 程序設計
本實例程序代碼如下。
#include <AT89x52.h>
sbit MotoENA = P2^3; //使能引腳
unsigned char MotoState=0;
int main(void)
{
IE=0x85;//外部中斷配置
TCON=0x00;
while(1)
{
if(MotoState==1)//啟動按鍵按下,電機開始轉動
MotoENA=1;
if(MotoState==0)//停止按鍵按下,電機停止轉動
MotoENA=0;
}
}
//外部中斷0服務程序,中斷髮生,控制電機轉動
void int1(void) interrupt 0
{
MotoState=1;
}
//外部中斷1服務程序,中斷髮生,控制電機停轉
void int2(void) interrupt 2
{
MotoState=0;
}
本程序中,直流電機的啟動、停止根據兩個按鍵的狀態決定,這兩個按鍵連接在單片機的兩個外部中斷引腳上。當然,也可以不使用外部中斷功能,直接用普通I/O口的輸入檢測功能就可判斷按鍵的狀態,但是考慮到對按鍵事件的響應速度,使用外部中斷更為合適。
1.6. 實例仿真
編寫程序代碼,編譯生成HEX文件,將HEX文件裝載到proteus電路的單片機中,開始仿真,通過按下不同的按鍵觀察電機的運行狀態。需要注意的是,當停止開關按下後,電機由於慣性的作用,不會立即停止轉動,而是轉速慢慢下降,直至停轉。
1.7. 總結
通過本實例,我們學習了電機驅動芯片L298的電路設計和編程實現。同時也順便了解了續流二極管的作用和使用方法。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/281573.html
微信掃一掃
支付寶掃一掃