L298N的接線和詳細使用方法

阡丶陌發表於2021-08-25

文章說明:

名詞概念(為了方便易懂,我就通俗的表達):

  邏輯電壓:控制板子執行程式的電壓。

  驅動電壓:輸出口AB的電壓。

  邏輯電流:驅動板執行程式的電流。

  驅動電流:輸出口AB的電流。

本人除錯此款L298N,只除錯過3.3V(小於5v的驅動電壓下面都統稱小於5v),7.4v,12v,24v(大於5v的驅動電壓都統稱大於5v)這4個檔位的電壓,此外除錯時沒測試過電流大小,只知道L298N最大功率為25w,最大驅動電流為2A

簡單介紹L298N板載位置的各個名稱 

 

簡單的端子和介面介紹:

一、12v供電:

  理論上最高可以接入35v(沒試過最低和最高的電壓,此處是某寶賣家提供的引數),購買直流電機前,先看清楚直流電機的相關引數和效能,如果滿足L298N的使用要求,再進行購買使用,否則容易燒燬L298N。

  從12v供電口進去的電,就是輸出AB口的電壓。但在介紹板載5v跳帽時,會說明當輸入電壓小於5v和大於5v的情況。

二、供電GND:

  顧名思義,接地線。但要注意的是,此處GND不但要接驅動電源的GND,如果是和別的微控制器或者其他系統連線在一起的時候一定要從這裡再引出一根GND和微控制器或者系統的GND相連。即整個系統的GND連線在一起,如果不連線在一起,電壓沒有參考電平,無法進行正常的控制。

三、5v供電:

  這是一個特殊的埠。既可以做L298N的邏輯電壓的輸入,也可以做外部微控制器或系統的5v供電口。具體切換在板載5v跳帽中介紹。

四、板載5v跳帽:

  12v供電口接≥5V的電源電壓時,板載5v跳帽不拔除,5v供電口有電壓輸出。數值具體大小自己用萬用表測,反正當12v口接7.4v時,5v供電口是輸出5v的。

  12v供電口≤5v的電源電壓時,板載5v跳帽需要拔除,因為L298N需要邏輯驅動電壓來驅動板子。此時5v供電口就變成了L298N的邏輯電壓供電的輸入口。供電電壓在3.3v -5v之間。

四、通道AB使能跳帽:

  需要PWM控制就拔除不需要PWM控制就不用拔除(老玩家就別管這句話了,就算不拔除也可以做到PWM除錯的,應該懂的都懂)。

  PWM控制對於電機而言表現出來現象的就是轉速控制,在Arduino裡用analogWrite(Pin,Value)語句來實現 [Pin(對應的針腳),Value(0-255之間的整型數字)]

五、邏輯輸入:

  IN1IN2為一組,對應OutA(輸出A);

  IN3IN4為一組,對應OutB(輸出B)。

六、輸出AB:

  直接接相應的輸出即可。

通道AB使能(AB兩個跳帽一起拔除)拔除的Arduino程式碼:

 1 int Right_motor = 12;       // IN1接Arduino板子上數字針腳12;
 2 int Right_motor_1 = 11;    // IN2接Arduino板子上數字針腳11;
 3 int ENA = 10;                   // 使能針腳接Arduino板子上PWM口10;
 4 
 5 void setup(){
 6   pinMode(Right_motor, OUTPUT);     // 定義輸入輸出;
 7   pinMode(Right_motor_1, OUTPUT);
 8 }
 9 
10 void Run_B(){     // 前進            L298N拔掉跳帽(注意AB兩端都要拔掉);同時當L298N是外部供電的情況下,L298N的GND埠要和Arduino的GND連線
11   digitalWrite(Right_motor, HIGH);
12   digitalWrite(Right_motor_1, LOW);
13   analogWrite(ENA, 200);
14 }
15 
16 void Stop(){     // 停止
17   digitalWrite(Right_motor, HIGH);
18   digitalWrite(Right_motor_1, LOW);
19   analogWrite(ENA, 0);
20 }
21 
22 void loop()
23 { 
24   Run_B();
25 }

 

通道AB使能(AB兩個跳帽一起不拔除)不拔除的Arduino程式碼:

 1 int Right_motor = 12;       // IN1接Arduino板子上數字針腳12;
 2 int Right_motor_1 = 11;     // IN2接Arduino板子上數字針腳11;
 3 
 4 void setup(){
 5   pinMode(Right_motor, OUTPUT);     // 定義輸入輸出;
 6   pinMode(Right_motor_1, OUTPUT);
 7 
 8 }
 9 
10 void Run_B(){     // 前進            L298N不拔掉跳帽用這個(注意兩端都不拔除);同時當L298N是外部供電的情況下,L298N的GND埠要和Arduino的GND連線
11   digitalWrite(Right_motor, HIGH);
12   digitalWrite(Right_motor_1, LOW);
13 }
14 
15 void Stop(){     // 停止
16   digitalWrite(Right_motor, LOW);
17   digitalWrite(Right_motor_1, LOW);
18 }
19 
20 void loop()
21 { 
22   Run_B();
23 }

 

不拔除AB使能跳帽,做到PWM調速:

 1 int Right_motor = 12;       // IN1接Arduino板子上數字針腳12;
 2 int Right_motor_1 = 11;     // IN2接Arduino板子上數字針腳11;
 3 
 4 void setup(){
 5    pinMode(Right_motor, OUTPUT);     // 定義輸入輸出;
 6    pinMode(Right_motor_1, OUTPUT);
 7 }
 8 
 9 void Run_A(int val){     // 前進     L298N接使能跳帽用這個;同時當L298N是外部供電的情況下,L298N的GND埠要和Arduino的GND連線          
10    analogWrite(Right_motor,val);
11    analogWrite(Right_motor_1,0);
12 }
13 
14 void Stop(){     // 停止
15    analogWrite(Right_motor,0);
16    analogWrite(Right_motor_1,0);
17  }
18  
19 void loop()
20 { 
21     Run_A(200);
22  }

 

相關文章