L298N的接线和详细使用方法

时间:2024-02-24 21:20:43

文章说明:

名词概念(为了方便易懂,我就通俗的表达):

  逻辑电压:控制板子执行程序的电压。

  驱动电压:输出口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  }