找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4524|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)串口控制3-L298N直流電機(jī)方向速度 Proteus仿真代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
    此次實(shí)驗(yàn)將通過窗口輸入來控制直流電機(jī)的正反轉(zhuǎn)并將輸入的數(shù)值在數(shù)碼管上顯示出來。本次實(shí)驗(yàn)的另一個(gè)目的便是了解L298芯片的工作原理和通過PWM控制電機(jī)轉(zhuǎn)動(dòng)的工作機(jī)理。
一、L298N簡(jiǎn)單介紹


   L298N是專用驅(qū)動(dòng)集成電路,屬于H橋集成電路,與L293D的差別是其輸出電流增大,功率增強(qiáng)。其輸出電流為2A,最高電流4A,最高工作電壓50V,可以驅(qū)動(dòng)感性負(fù)載,如大功率直流電機(jī),步進(jìn)電機(jī),電磁閥等,特別是其輸入端可以與單片機(jī)直接相聯(lián),從而很方便地受單片機(jī)控制。當(dāng)驅(qū)動(dòng)直流電機(jī)時(shí),可以直接控制步進(jìn)電機(jī),并可以實(shí)現(xiàn)電機(jī)正轉(zhuǎn)與反轉(zhuǎn),實(shí)現(xiàn)此功能只需改變輸入端的邏輯電平。

   L298N芯片可以驅(qū)動(dòng)兩個(gè)二相電機(jī),也可以驅(qū)動(dòng)一個(gè)四相電機(jī),輸出電壓最高可達(dá)50V,可以直接通過電源來調(diào)節(jié)輸出電壓;可以直接用單片機(jī)的IO口提供信號(hào);而且電路簡(jiǎn)單,使用比較方便。

  L298N可接受標(biāo)準(zhǔn)TTL邏輯電平信號(hào)VSS,VSS可接4.5~7V電壓。4腳VS接電源電壓,VS電壓范圍VIH為+2.5~46V。輸出電流可達(dá)2A,可驅(qū)動(dòng)電感性負(fù)載。1腳和15腳下管的發(fā)射極分別單獨(dú)引出以便接入電流采樣電阻,形成電流傳感信號(hào)。L298可驅(qū)動(dòng)2個(gè)電動(dòng)機(jī),OUT1,OUT2和OUT3,OUT4之間可分別接電動(dòng)機(jī),本實(shí)驗(yàn)裝置我們選用驅(qū)動(dòng)一臺(tái)電動(dòng)機(jī)。5,7,10,12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn)。EnA,EnB接控制使能端,控制電機(jī)的停轉(zhuǎn)。下圖是L298N內(nèi)部原理圖。

  

  二、L298N中文資料匯總—L298N引腳圖及功能

  LN298引腳圖

  

  L298N邏輯功能表

  

  In3,In4的邏輯圖與表1相同。由表1可知EnA為低電平時(shí),輸入電平對(duì)電機(jī)控制起作用,當(dāng)EnA為高電平,輸入電平為一高一低,電機(jī)正或反轉(zhuǎn)。同為低電平電機(jī)停止,同為高電平電機(jī)剎停。

三、L298N中文資料匯總—L298N工作原理

  L298N控制器原理如下:

  圖3是控制器原理圖,由3個(gè)虛線框圖組成。

  

 。1)虛線框圖1控制電機(jī)正反轉(zhuǎn),U1A,U2A是比較器,VI來自爐體壓強(qiáng)傳感器的電壓。當(dāng)VI>VRBF1時(shí),U1A輸出高電平,U2A輸出高電平經(jīng)反相器變?yōu)榈碗娖,電機(jī)正轉(zhuǎn)。同理VI<VRBF1時(shí),電機(jī)反轉(zhuǎn)。電機(jī)正反轉(zhuǎn)可控制抽氣機(jī)抽出氣體的流量,從而改變爐體壓強(qiáng)。

 。2)虛線框圖2中,U3A,U4A兩個(gè)比較器組成雙限比較器,當(dāng)VB<VI<VA時(shí)輸出低電平,當(dāng)VI>VA,VI<VB時(shí)輸出高電平。VA,VB是由爐體壓強(qiáng)轉(zhuǎn)感器轉(zhuǎn)換電壓的上下限,即反應(yīng)爐體壓強(qiáng)控制范圍。根據(jù)工藝要求,我們可自行規(guī)定VA,VB的值,只要爐體壓強(qiáng)在VA,VB所確定范圍之間電機(jī)停轉(zhuǎn)(注意VB<VRBF1<VA,如果不在這個(gè)范圍內(nèi),系統(tǒng)不穩(wěn)定)。

 。3)虛線框圖3是一個(gè)長(zhǎng)延時(shí)電路。U5A是一個(gè)比較器,Rs1是采樣電阻,VRBF2是電機(jī)過流電壓。Rs1上電壓大于VREF2,電機(jī)過流,U5A輸出低電平。由上面可知,框圖1控制電機(jī)正反轉(zhuǎn),框圖2控制爐體壓強(qiáng)的紋波大小。當(dāng)爐體壓強(qiáng)太小或太大時(shí),電動(dòng)機(jī)轉(zhuǎn)到兩端固定位置停止,根據(jù)直流電機(jī)穩(wěn)態(tài)運(yùn)行方:

  U=CeФN+RaIa

  其中:Ф為電機(jī)每極磁通量;

  Ce為電動(dòng)勢(shì)常數(shù);

  N為電機(jī)轉(zhuǎn)數(shù);

  Ia為電樞電流;

  Ra電樞回路電阻。

  電機(jī)轉(zhuǎn)數(shù)N為0,電機(jī)的電流急劇增加,時(shí)間過長(zhǎng)將會(huì)使電機(jī)燒壞。但電機(jī)起動(dòng)時(shí),電機(jī)中線圈中的電流也急劇變大,因此我們必須把這兩種狀態(tài)分開。長(zhǎng)延時(shí)電路可把這兩種狀態(tài)區(qū)分出來。長(zhǎng)延時(shí)電路工作原理:當(dāng)Rs1過流U5A產(chǎn)生一個(gè)負(fù)脈沖經(jīng)過微分后,脈沖觸發(fā)555的2腳,電路置位,3腳輸出高電平,由于放電端7腳開路,C1,R5及U6A組成積分器開始積分,電容C1上的充電電壓線性上升,延時(shí)運(yùn)放積分常數(shù)為100R5C1。當(dāng)C1上充電電壓,即6腳電壓超過2/3VCC,555電路復(fù)位,輸出低電平。電機(jī)啟動(dòng)時(shí)間一般小于0.8s,C1充電時(shí)間一般為0.8~1s。U5A輸出電平與555的3腳輸出電平經(jīng)U7相或,如果U5A輸出低電平大于C1充電時(shí)間,U7在C1充電后輸出低電平由與門U8輸入到L298N的6腳ENA端使電機(jī)停止。如果U5A的輸出電平小于C1充電時(shí)間,6腳不動(dòng)作電機(jī)的正常啟動(dòng)。長(zhǎng)延時(shí)電路吸收電機(jī)啟動(dòng)過流電壓波形,從而使電機(jī)正常啟動(dòng)。

  四、L298N中文資料匯總—L298N特性參數(shù)

   類型: 半橋

  輸入類型:非反相

  輸出數(shù):4

  電流-輸出/通道:2A

  電流-峰值輸出:3A

  電源電壓:4.5V~46V

  工作溫度:-25°C~130°C

  安裝類型:通孔

  封裝/外殼:MulTIwatt-15(垂直,彎曲和錯(cuò)列引線)

  供應(yīng)商設(shè)備封裝:15-MulTIwatt

  包裝:管件

  器件型號(hào)L298N

  制造商STMicroelectronics

  產(chǎn)品型號(hào)MotionMotorControl

  五、L298N中文資料匯總—L298N典型驅(qū)動(dòng)電路

  L298N電機(jī)驅(qū)動(dòng)模塊性能特點(diǎn):

  1:可實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)及調(diào)速。

  2:?jiǎn)?dòng)性能好,啟動(dòng)轉(zhuǎn)矩大。

  3:工作電壓可達(dá)到36V,4A。

  4:可同時(shí)驅(qū)動(dòng)兩臺(tái)直流電機(jī)。

  5:適合應(yīng)用于機(jī)器人設(shè)計(jì)及智能小車的設(shè)計(jì)。

  

  情況一:用L298N驅(qū)動(dòng)兩臺(tái)直流減速電機(jī)的電路。引腳A,B可用于PWM控制。如果機(jī)器人項(xiàng)目只要求直行前進(jìn),則可將IN1,IN2和IN3,IN4兩對(duì)引腳分別接高電平和低電平,僅用單片機(jī)的兩個(gè)端口給出PWM信號(hào)控制使能端A,B即可實(shí)現(xiàn)直行、轉(zhuǎn)彎、加減速等動(dòng)作。

  情況二:用L298實(shí)現(xiàn)二相步進(jìn)電機(jī)控制。將IN1,IN2和IN3,IN4兩對(duì)引腳分別接入單片機(jī)的某個(gè)端口,輸出連續(xù)的脈沖信號(hào)。信號(hào)頻率決定了電機(jī)的轉(zhuǎn)速。改變繞組脈沖信號(hào)的順序即可實(shí)現(xiàn)正反轉(zhuǎn)。

  模塊說明:

  IN1-IN4邏輯輸入:其中IN1、IN2控制電機(jī)M1;IN3、IN4控制電機(jī)M2。例如IN1輸入高電平1,IN2輸入低電平0,對(duì)應(yīng)電機(jī)M1正轉(zhuǎn);IN1輸入低電平0,IN2輸入高電平1,對(duì)應(yīng)電機(jī)M1反轉(zhuǎn),調(diào)速就是改變高電平的占空比。(如何改變占空比請(qǐng)學(xué)會(huì)百度)

  白色芯片:為TLP521-4光隔,作用是光電隔離,保護(hù)因電機(jī)啟動(dòng)停止瞬間產(chǎn)生的尖峰脈沖對(duì)主控制器的影響。

  RN1、RN2:上下拉電阻,不用多說;其中470為470歐電阻,5.6K為5600歐電阻。

  PWMA、PWMB:L298N使能端(高電平有效,常態(tài)下用跳線帽接于VCC),可通過這兩個(gè)端口實(shí)現(xiàn)PWM調(diào)速(使用PWM調(diào)速時(shí)取下跳線帽),具體參考L298N芯片手冊(cè)。

  VIN:電機(jī)供電電源接口,如果電機(jī)采用9V供電,那么電源正極接VIN,負(fù)極接GND即可。

  VCC:L298N芯片供電5V,此模塊需要外接(最好取邏輯部分的電壓供電)

  D1-D8:續(xù)流二極管-IN4007

  M1:電機(jī)1接口,沒有正負(fù)之分,如果發(fā)現(xiàn)電機(jī)轉(zhuǎn)向不對(duì)將電機(jī)兩線調(diào)換即可。

  M2:同M1。

  L298N供電的5V如果是用另外電源供電的話,(即不是和單片機(jī)的電源共用),那么需要將單片機(jī)的GND和模塊上的GND連接在一起,只有這樣單片機(jī)上過來的邏輯信號(hào)才有個(gè)參考0點(diǎn)。此點(diǎn)非常重要,請(qǐng)大家注意。



單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #define u8 unsigned char
  3. #include "uart.h"
  4. sbit M1=P3^6;
  5. sbit M2=P3^7;
  6. bit fang=0;//0順 1逆
  7. bit sudu=0;//0慢 1快
  8. //串口接收,0順 1逆 2慢 3快
  9. u8 i=0;
  10. void delay(long k){while(k--);}
  11. void main (void)
  12. {
  13.         u8 key=0;//按鍵狀態(tài)
  14.         UART1_init();
  15.         UART1_Sends("Phuck u everyday");
  16.         UART1_Send(0x0d);UART1_Send(0x0a);//回車、換行
  17.         while(1)
  18.         {               
  19.                 if(key!=P1)//如果按下了按鍵
  20.                 {
  21.                         key=P1;//獲取最新的按鍵狀態(tài)
  22.                         SBUF=key;//發(fā)送
  23.                 }
  24.                 if(fang==0)
  25.                 {
  26.                         if(sudu==0) {M1=0;M2=1;delay(1000);
  27.                                                                          M1=0;M2=0;delay(500);}
  28.                         if(sudu==1) {M1=0;M2=1;delay(10000);}//補(bǔ)充順時(shí)針代碼,含速度
  29.                 }
  30.                 else
  31.                 {
  32.                         if(sudu==0) {M1=1;M2=0;delay(1000);
  33.                                                                          M1=0;M2=0;delay(500);}
  34.                         if(sudu==1) {M1=1;M2=0;delay(10000);}//補(bǔ)充逆時(shí)針代碼,含速度
  35.                 }
  36.         }
  37. }

  38. void UART_INT(void) interrupt 4
  39. {
  40.         if(RI)//串口輸入引起的中斷
  41.         {
  42.                 P2=SBUF;//獲取用戶命令SBUF,并顯示ASCII
  43.                 i=SBUF & 0x0F;
  44.                 switch(i)
  45.                         {
  46.                           case 0:fang=0;break;
  47.                                 case 1:fang=1;break;
  48.                                 case 2:sudu=0;break;
  49.                                 case 3:sudu=1;break;}
  50.                         //請(qǐng)補(bǔ)充代碼,根據(jù)命令修改fang、sudu
  51.                 RI=0;//清空中斷
  52.         }
  53.         else TI=0;//串口輸出引起的中斷
  54. }
復(fù)制代碼
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


仿真代碼51hei提供下載:
串口控制3-直流電機(jī)方向速度.rar (79.52 KB, 下載次數(shù): 28)

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表