文章说明:
名词概念(为了方便易懂,我就通俗的表达):
逻辑电压:控制板子执行程序的电压。
驱动电压:输出口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 }