此次實驗將通過窗口輸入來控制直流電機的正反轉并將輸入的數值在數碼管上顯示出來。本次實驗的另一個目的便是了解L298芯片的工作原理和通過PWM控制電機轉動的工作機理。 一、L298N簡單介紹
L298N是專用驅動集成電路,屬于H橋集成電路,與L293D的差別是其輸出電流增大,功率增強。其輸出電流為2A,最高電流4A,最高工作電壓50V,可以驅動感性負載,如大功率直流電機,步進電機,電磁閥等,特別是其輸入端可以與單片機直接相聯,從而很方便地受單片機控制。當驅動直流電機時,可以直接控制步進電機,并可以實現電機正轉與反轉,實現此功能只需改變輸入端的邏輯電平。 L298N芯片可以驅動兩個二相電機,也可以驅動一個四相電機,輸出電壓最高可達50V,可以直接通過電源來調節輸出電壓;可以直接用單片機的IO口提供信號;而且電路簡單,使用比較方便。 L298N可接受標準TTL邏輯電平信號VSS,VSS可接4.5~7V電壓。4腳VS接電源電壓,VS電壓范圍VIH為+2.5~46V。輸出電流可達2A,可驅動電感性負載。1腳和15腳下管的發射極分別單獨引出以便接入電流采樣電阻,形成電流傳感信號。L298可驅動2個電動機,OUT1,OUT2和OUT3,OUT4之間可分別接電動機,本實驗裝置我們選用驅動一臺電動機。5,7,10,12腳接輸入控制電平,控制電機的正反轉。EnA,EnB接控制使能端,控制電機的停轉。下圖是L298N內部原理圖。
二、L298N中文資料匯總—L298N引腳圖及功能 LN298引腳圖
L298N邏輯功能表
In3,In4的邏輯圖與表1相同。由表1可知EnA為低電平時,輸入電平對電機控制起作用,當EnA為高電平,輸入電平為一高一低,電機正或反轉。同為低電平電機停止,同為高電平電機剎停。 三、L298N中文資料匯總—L298N工作原理 L298N控制器原理如下: 圖3是控制器原理圖,由3個虛線框圖組成。
(1)虛線框圖1控制電機正反轉,U1A,U2A是比較器,VI來自爐體壓強傳感器的電壓。當VI>VRBF1時,U1A輸出高電平,U2A輸出高電平經反相器變為低電平,電機正轉。同理VI<VRBF1時,電機反轉。電機正反轉可控制抽氣機抽出氣體的流量,從而改變爐體壓強。 (2)虛線框圖2中,U3A,U4A兩個比較器組成雙限比較器,當VB<VI<VA時輸出低電平,當VI>VA,VI<VB時輸出高電平。VA,VB是由爐體壓強轉感器轉換電壓的上下限,即反應爐體壓強控制范圍。根據工藝要求,我們可自行規定VA,VB的值,只要爐體壓強在VA,VB所確定范圍之間電機停轉(注意VB<VRBF1<VA,如果不在這個范圍內,系統不穩定)。 (3)虛線框圖3是一個長延時電路。U5A是一個比較器,Rs1是采樣電阻,VRBF2是電機過流電壓。Rs1上電壓大于VREF2,電機過流,U5A輸出低電平。由上面可知,框圖1控制電機正反轉,框圖2控制爐體壓強的紋波大小。當爐體壓強太小或太大時,電動機轉到兩端固定位置停止,根據直流電機穩態運行方: U=CeФN+RaIa 其中:Ф為電機每極磁通量; Ce為電動勢常數; N為電機轉數; Ia為電樞電流; Ra電樞回路電阻。 電機轉數N為0,電機的電流急劇增加,時間過長將會使電機燒壞。但電機起動時,電機中線圈中的電流也急劇變大,因此我們必須把這兩種狀態分開。長延時電路可把這兩種狀態區分出來。長延時電路工作原理:當Rs1過流U5A產生一個負脈沖經過微分后,脈沖觸發555的2腳,電路置位,3腳輸出高電平,由于放電端7腳開路,C1,R5及U6A組成積分器開始積分,電容C1上的充電電壓線性上升,延時運放積分常數為100R5C1。當C1上充電電壓,即6腳電壓超過2/3VCC,555電路復位,輸出低電平。電機啟動時間一般小于0.8s,C1充電時間一般為0.8~1s。U5A輸出電平與555的3腳輸出電平經U7相或,如果U5A輸出低電平大于C1充電時間,U7在C1充電后輸出低電平由與門U8輸入到L298N的6腳ENA端使電機停止。如果U5A的輸出電平小于C1充電時間,6腳不動作電機的正常啟動。長延時電路吸收電機啟動過流電壓波形,從而使電機正常啟動。 四、L298N中文資料匯總—L298N特性參數 類型: 半橋 輸入類型:非反相 輸出數:4 電流-輸出/通道:2A 電流-峰值輸出:3A 電源電壓:4.5V~46V 工作溫度:-25°C~130°C 安裝類型:通孔 封裝/外殼:MulTIwatt-15(垂直,彎曲和錯列引線) 供應商設備封裝:15-MulTIwatt 包裝:管件 器件型號L298N 制造商STMicroelectronics 產品型號MotionMotorControl 五、L298N中文資料匯總—L298N典型驅動電路 L298N電機驅動模塊性能特點: 1:可實現電機正反轉及調速。 2:啟動性能好,啟動轉矩大。 3:工作電壓可達到36V,4A。 4:可同時驅動兩臺直流電機。 5:適合應用于機器人設計及智能小車的設計。
情況一:用L298N驅動兩臺直流減速電機的電路。引腳A,B可用于PWM控制。如果機器人項目只要求直行前進,則可將IN1,IN2和IN3,IN4兩對引腳分別接高電平和低電平,僅用單片機的兩個端口給出PWM信號控制使能端A,B即可實現直行、轉彎、加減速等動作。 情況二:用L298實現二相步進電機控制。將IN1,IN2和IN3,IN4兩對引腳分別接入單片機的某個端口,輸出連續的脈沖信號。信號頻率決定了電機的轉速。改變繞組脈沖信號的順序即可實現正反轉。
模塊說明: IN1-IN4邏輯輸入:其中IN1、IN2控制電機M1;IN3、IN4控制電機M2。例如IN1輸入高電平1,IN2輸入低電平0,對應電機M1正轉;IN1輸入低電平0,IN2輸入高電平1,對應電機M1反轉,調速就是改變高電平的占空比。(如何改變占空比請學會百度) 白色芯片:為TLP521-4光隔,作用是光電隔離,保護因電機啟動停止瞬間產生的尖峰脈沖對主控制器的影響。 RN1、RN2:上下拉電阻,不用多說;其中470為470歐電阻,5.6K為5600歐電阻。 PWMA、PWMB:L298N使能端(高電平有效,常態下用跳線帽接于VCC),可通過這兩個端口實現PWM調速(使用PWM調速時取下跳線帽),具體參考L298N芯片手冊。 VIN:電機供電電源接口,如果電機采用9V供電,那么電源正極接VIN,負極接GND即可。 VCC:L298N芯片供電5V,此模塊需要外接(最好取邏輯部分的電壓供電) D1-D8:續流二極管-IN4007 M1:電機1接口,沒有正負之分,如果發現電機轉向不對將電機兩線調換即可。 M2:同M1。 L298N供電的5V如果是用另外電源供電的話,(即不是和單片機的電源共用),那么需要將單片機的GND和模塊上的GND連接在一起,只有這樣單片機上過來的邏輯信號才有個參考0點。此點非常重要,請大家注意。
單片機源程序如下:
- #include <reg51.h>
- #define u8 unsigned char
- #include "uart.h"
- sbit M1=P3^6;
- sbit M2=P3^7;
- bit fang=0;//0順 1逆
- bit sudu=0;//0慢 1快
- //串口接收,0順 1逆 2慢 3快
- u8 i=0;
- void delay(long k){while(k--);}
- void main (void)
- {
- u8 key=0;//按鍵狀態
- UART1_init();
- UART1_Sends("Phuck u everyday");
- UART1_Send(0x0d);UART1_Send(0x0a);//回車、換行
- while(1)
- {
- if(key!=P1)//如果按下了按鍵
- {
- key=P1;//獲取最新的按鍵狀態
- SBUF=key;//發送
- }
- if(fang==0)
- {
- if(sudu==0) {M1=0;M2=1;delay(1000);
- M1=0;M2=0;delay(500);}
- if(sudu==1) {M1=0;M2=1;delay(10000);}//補充順時針代碼,含速度
- }
- else
- {
- if(sudu==0) {M1=1;M2=0;delay(1000);
- M1=0;M2=0;delay(500);}
- if(sudu==1) {M1=1;M2=0;delay(10000);}//補充逆時針代碼,含速度
- }
- }
- }
- void UART_INT(void) interrupt 4
- {
- if(RI)//串口輸入引起的中斷
- {
- P2=SBUF;//獲取用戶命令SBUF,并顯示ASCII
- i=SBUF & 0x0F;
- switch(i)
- {
- case 0:fang=0;break;
- case 1:fang=1;break;
- case 2:sudu=0;break;
- case 3:sudu=1;break;}
- //請補充代碼,根據命令修改fang、sudu
- RI=0;//清空中斷
- }
- else TI=0;//串口輸出引起的中斷
- }
復制代碼 仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
仿真代碼51hei提供下載:
串口控制3-直流電機方向速度.rar
(79.52 KB, 下載次數: 28)
2021-7-18 20:38 上傳
點擊文件名下載附件
|