admin管理员组

文章数量:1531237

2024年2月16日发(作者:)

L298N电机驱动器使用说明

兴创科技

是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

宝贝简介:

一、尺寸:65mmX41mmX28mm

二、主要芯片:L298N、光电耦合器

三、工作电压:控制信号直流~;驱动电机电压5~30V

四、可驱动直流(5~30V之间电压的电机)

五、最大输出电流2A (瞬间峰值电流3A)

六、最大输出功率25W

七、特点:

1、具有信号指示

2、转速可调

3、抗干扰能力强

4、具有续流保护

5、可单独控制两台直流电机

6、可单独控制一台步进电机

7、PWM脉宽平滑调速(可使用PWM信号对直流电机调速)

8、可实现正反转

9、采用光电隔离

实例一:步进电机的控制实例

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。

一、步进电机最大特点是:

1、它是通过输入脉冲信号来进行控制的。

2、电机的总转动角度由输入脉冲数决定。

3、电机的转速由脉冲信号频率决定。

二、步进电机的驱动电路

根据控制信号工作,控制信号由单片机产生。(或者其他信号源)

三、基本原理作用如下:

步进电机控制:将IN1,IN2和IN3,IN4两对引脚分别接入单片机的某个端口,输出连续的脉冲信号。信号频率决定了电机的转速。改变绕组脉冲信号的顺序即可实现正反转。

两相四拍工作模式时序图:

步进电机 信号输入

IN1

正转

IN2

IN3

IN4

IN1

反转

IN2

IN3

IN4

第一步

0

1

1

1

1

1

1

0

第二步

1

0

1

1

1

1

0

1

第三步

1

1

0

1

1

0

1

1

第四步

1

1

1

0

0

1

1

1

返回第一步

返回

返回

返回

返回

返回

返回

返回

返回

(1)控制换相顺序

1、通电换相这一过程称为脉冲分配。

例如:

1、两相四线步进电机的四拍工作方式,其各相通电顺序为(A-B-A’-B’)依次循环 (通电控制脉冲必须严格按照这一顺序分别控制A,B相的通断。)

2、两相四线步进电机的八拍工作方式,其各相通电顺序为:

(A-AB-B-BA’-A’-A’B’-B’-B’A)依次循环。(出于对力矩、平稳、噪音及减少角度等方面考虑往往采用八拍工作方式)

(2)控制步进电机的转向

如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。如:正转通电顺序是:(A-B-A’-B’ 依次循环。)则反转的通电顺序是:(B‘-A’-B-A依次循环。)

(3)控制步进电机的速度

如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。(注意:如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。

实例二:直流电机的控制实例

使用直流/步进两用驱动器可以驱动两台直流电机。分别为M1和

M2。引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。(如果信号端IN1接低电平, IN2接高电平,电机M1反转。)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。

可参考下图表:

输入PWM信号改旋转方电机

式 IN1 IN2 IN3 IN4

调速端A

正转

M1 反转

停止

正转

M2 反转

停止

控制端控制端控制端控制端变脉宽可调速

调速端B

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

#include<> //头文件

#define uint unsigned int //宏定义

sbit D1=P1^0; //驱动器in1

sbit D2=P1^1; //声明单片机P1口的第一位和第二位 ******驱动器in2

sbit K1=P3^0; //声明单片机P3口第一位(独立开关) 按键key1

sbit k2=P3^1; //行程开关远端

sbit k3=P0^7; //行程开关近端

unsigned int flag=0,flag1,flag2,get_out=0; //声明标识

// K1=1;

// k2=1;

// k3=1;

void delay(uint z); //声明子函数

void IntConfiguration()

{ //设置INT0

IT0=1; //外部中断0跳变沿触发方式(下降沿)

EX0=1; //打开INT0的中断允许。

//设置INT1

IT1=1; //设置外部中断1为跳变沿触发方式

EX1=1; //打开外部中断0中断允许

EA=1; //打开总中断

}

void INIT0() interrupt 0

{

if((flag==1)&&(flag1==1))

{

D1=0;

D2=1; //使电机正传

get_out=0; //get_out清0

}

}

void main()

{

IntConfiguration();

while(1) //大循环

{

if(K1==0) //检测K1是否按下

{

delay(5); //消除抖动

if(K1==0) //再次检测K1是否按下

{

D1=0;

D2=0; //使电机停止

flag=1; //将flag赋值为1

}

}

if(k2==0) //检测K2是否按下

{

delay(5); //延时消抖

if(k2==0&&(flag==1)) //检测K2是否按下并且flag是否为1

{

flag1=1; //将flag1赋值为1

}

}

if((flag==1)&&(flag1==1)&&(get_out==0)) //检测flag、flag1是否均为1且get_out为0

{

D1=0;

D2=0;

delay(3000); //电机停止3秒

{

D1=1;

D2=0; //使电机反转

get_out=1; //将get_out赋值为1

}

}

if(k3==0) //检测k3是否按下

{

delay(5);

if(k3==0) //延时消抖后检测k3是否按下

{

flag2=1; //将flag2赋值为1

}

}

if((flag2==1)&&( flag1==1)) //检测flag2与flag1是否均为1

{

flag2=0;

flag=0;

flag1=0;

get_out=0; //所有标识清0

D1=0;

D2=0; //使电机停止

}

}

}

void delay(uint z) //延时子程序延时约z毫秒

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

本文标签: 电机步进信号