《L298N步进电机驱动器使用说明.doc》由会员分享,可在线阅读,更多相关《L298N步进电机驱动器使用说明.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流L298N步进电机驱动器使用说明【精品文档】第 8 页L298N电机驱动器使用说明 兴创科技L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量
2、反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。宝贝简介:一、尺寸:65mmX41mmX28mm二、主要芯片:L298N、光电耦合器三、工作电压:控制信号直流4.55.5V;驱动电机电压530V四、可驱动直流(530V之间电压的电机)五、最大输出电流2A (瞬间峰值电流3A)六、最大输出功率25W七、特点:1、具有信号指示2、转速可调3、抗干扰能力强4、具有续流保护5、可单独控制两台直流电机6、可单独控制一台步进电机7、PWM脉宽平滑调速(可使用PWM信号对直流电机调速)8、可实现正反转9、采用光电隔离实例一:步进电机的控制实例
3、步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。一、步进电机最大特点是:1、它是通过输入脉冲信号来进行控制的。2、电机的总转动角度由输入脉冲数决定。3、电机的转速由脉冲信号频率决定。二、步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。(或者其他信号源)三、基本原理作用如下:步进电机控制:将IN1,IN2和IN3,IN4两对引脚分别接入单片机的某个端口,输出连续的脉冲信号。信号频率决定了电机的转速。改变绕组脉冲信号的顺序
4、即可实现正反转。两相四拍工作模式时序图:步进电机信号输入第一步第二步第三步第四步返回第一步正转IN10111返回IN21011返回IN31101返回IN41110返回反转IN11110返回IN21101返回IN31011返回IN40111返回(1)控制换相顺序1、通电换相这一过程称为脉冲分配。例如:1、两相四线步进电机的四拍工作方式,其各相通电顺序为(A-B-AB)依次循环 (通电控制脉冲必须严格按照这一顺序分别控制A,B相的通断。)2、两相四线步进电机的八拍工作方式,其各相通电顺序为:(AABBBAAAB-BBA)依次循环。(出于对力矩、平稳、噪音及减少角度等方面考虑往往采用八拍工作方式)(
5、2)控制步进电机的转向如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。如:正转通电顺序是:(A-B-AB 依次循环。)则反转的通电顺序是:(B-A-BA依次循环。) (3)控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。(注意:如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。实例二:直流电机的控制实例使用直流/步进两用驱动器可以驱动两台直流电机。分别为M1和M2。引脚A,B可用于输入PWM脉宽调制信号对电机进行
6、调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。(如果信号端IN1接低电平, IN2接高电平,电机M1反转。)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。可参考下图表:电机旋转方式控制端IN1控制端IN2控制端IN3控制端IN4输入PWM信号改变脉宽可调速调速端A调速端BM1正转高低/高/反转低高/高/停止低低/高/M2正转/高低/高反转/低高/高停止低低/高
7、#include /头文件#define uint unsigned int /宏定义sbit D1=P10; /驱动器in1sbit D2=P11; /声明单片机P1口的第一位和第二位 *驱动器in2sbit K1=P30; /声明单片机P3口第一位(独立开关)按键key1sbit k2=P31; /行程开关远端sbit k3=P07; /行程开关近端 unsigned int flag=0,flag1,flag2,get_out=0; /声明标识/K1=1;/k2=1;/k3=1;void delay(uint z); /声明子函数void IntConfiguration() /设置IN
8、T0IT0=1; /外部中断0跳变沿触发方式(下降沿)EX0=1; /打开INT0的中断允许。 /设置INT1IT1=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清0void main()IntConfiguration(); while(1) /大循环 if(K1=0) /检测K1是否按下 delay(5); /消除抖动 if(K1=0) /再次检测K1是否按下 D1=0; D
9、2=0; /使电机停止 flag=1; /将flag赋值为1if(k2=0) /检测K2是否按下delay(5); /延时消抖if(k2=0&(flag=1) /检测K2是否按下并且flag是否为1 flag1=1; /将flag1赋值为1if(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赋值为1if(k3=0) /检测k3是否按下delay(5);if(k3=0) /延时消抖后检测k3是否按下flag2=1; /将flag2赋值为1if(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;x0;x-)for(y=110;y0;y-);
限制150内