文章說明:
名詞概念(為了方便易懂,我就通俗的表達):
邏輯電壓:控制板子執行程式的電壓。
驅動電壓:輸出口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之間的整型數字)]
五、邏輯輸入:
IN1和IN2為一組,對應OutA(輸出A);
IN3和IN4為一組,對應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 }