L298N驱动器设计原理图例程.docx
《L298N驱动器设计原理图例程.docx》由会员分享,可在线阅读,更多相关《L298N驱动器设计原理图例程.docx(19页珍藏版)》请在冰豆网上搜索。
L298N驱动器设计原理图例程
【简要说明】
一、尺寸:
长80mmX宽45mmX高28mm
二、主要芯片:
L298N、光电耦合器
三、工作电压:
控制信号直流4.5~5.5V;驱动电机电压5~30V
四、可驱动直流(5~30V之间电压的电机)
五、最大输出电流2A(瞬间峰值电流3A)
六、最大输出功率25W
七、特点:
1、具有信号指示
2、转速可调
3、抗干扰能力强
4、具有续流保护
5、可单独控制两台直流电机
6、可单独控制一台步进电机
7、PWM脉宽平滑调速(可使用PWM信号对直流电机调速)
8、可实现正反转
9、采用光电隔离
【标注图片】
【步进电机接线图】
【直流电机接线图】
【直流无刷电机接线图】
【应用原理图】
元件清单
序号
名称
标注名
型号
备注
1.
排针
JP1
10mm*2.54mm
2.
电解电容
C1
50V100UF
有极性区分
3.
电解电容
C3
50V100UF
有极性区分
4.
瓷片电容
C2
104
5.
瓷片电容
C4
104
6.
发光二极管
LED1
3mm
有极性区分
7.
发光二极管
LED2
3mm
有极性区分
8.
发光二极管
LED3
3mm
有极性区分
9.
发光二极管
LED4
3mm
有极性区分
10.
16P管座
有方向
11.
排阻
R-2
9脚
有方向
12.
整流二极管
D1~D8
IN4007
有极性
13.
电阻
R1、R2
0.5欧姆2W
14.
接线端子
KF-128
实例一:
步进电机的控制实例
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。
一、步进电机最大特点是:
1、它是通过输入脉冲信号来进行控制的。
2、电机的总转动角度由输入脉冲数决定。
3、电机的转速由脉冲信号频率决定。
二、步进电机的驱动电路
根据控制信号工作,控制信号由单片机产生。
(或者其他信号源)
三、控制步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
(注意:
如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。
四、此板驱动步进电机测试程序
说明:
以AT89S52单片机控制单元,C语言编程!
【输入部分接线图】
【输出部分接线图】
【测试程序】
/********************************************************************
汇诚科技
实现功能:
正转_反转_减速_加速程序
使用芯片:
AT89S52或者STC89C52
晶振:
11.0592MHZ
编译环境:
Keil
作者:
zhangxinchun
:
淘宝店:
汇诚科技
*********************************************************************/
#include
/*------宏定义------*/
#defineucharunsignedchar
#defineuintunsignedint
/*****P1.0=A;P1.1=B;P1.2=A';P1.3=B'****/
/*******************************正转数组**************************************************/
codeunsignedcharrunz[8]={0x05,0x01,0x09,0x08,0x0a,0x02,0x06,0x04};//两相四线八拍工作方式
/*******************************反转数组**************************************************/
codeunsignedcharrunf[8]={0x04,0x06,0x02,0x0a,0x08,0x09,0x01,0x05};//两相四线八拍工作方式
ucharkeycan=0;//键值
inty=15;//定义转动速度,数值越大电机转速越慢反之则快
sbitP2_0=P2^0;//正转按键
sbitP2_1=P2^1;//反转按键
sbitP2_2=P2^2;//电机减速
sbitP2_3=P2^3;//电机加速
/********************************************************************
延时函数
*********************************************************************/
voiddelay(i)//延时函数
{
ucharj,k;
for(j=0;j
for(k=0;k<250;k++);
}
/********************************************************************
正转运行函数
*********************************************************************/
voidzrun()//正转运行
{
ucharz;
for(z=0;z<8;z++)
{
P1=runz[z];
delay(y);
}
}
/********************************************************************
反转运行函数
*********************************************************************/
voidfrun()//反转运行
{
ucharz;
for(z=0;z<8;z++)
{
P1=runf[z];
delay(y);
}
}
/********************************************************************
主函数
*********************************************************************/
main()
{
while
(1)
{
if(P2_0==0)//如果电机正转按键按下
{
keycan=1;//键值等于1
}
if(P2_1==0)//如果电机反转按键按下
{
keycan=2;//键值等于2
}
switch(keycan)
{
case1:
zrun();//键值等于1正转
break;
case2:
frun();//键值等于2反转
break;
}
if(P2_2==0)//电机减速
{
y+=2;
}
if(P2_3==0)//电机加速
{
y-=2;
}
}
}
/********************************************************************
结束
*********************************************************************/
实例二:
直流电机的控制实例
使用直流/步进两用驱动器可以驱动两台直流电机。
分别为M1和M2。
引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。
(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。
(如果信号端IN1接低电平,IN2接高电平,电机M1反转。
)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。
(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。
可参考下图表:
电机
旋转方式
控制端IN1
控制端IN2
控制端IN3
控制端IN4
输入PWM信号改变脉宽可调速
调速端A
调速端B
M1
正转
高
低
/
/
高
/
反转
低
高
/
/
高
/
停止
低
低
/
/
高
/
M2
正转
/
/
高
低
/
高
反转
/
/
低
高
/
高
停止
低
低
/
/
/
高
五、此板驱动直流电机测试程序
【输入部分接线图】
【输出部分接线图】
【测试程序】
/********************************************************************
汇诚科技
实现功能:
直流电机调试程序
使用芯片:
AT89S52或者STC89C52
晶振:
11.0592MHZ
编译环境:
Keil
*********************************************************************/
#include
#defineucharunsignedchar//宏定义无符号字符型
#defineuintunsignedint//宏定义无符号整型
sbitP2_0=P2^0;//M1启动
sbitP2_1=P2^1;//M1停止
sbitP2_2=P2^2;//M2启动
sbitP2_3=P2^3;//M2停止
sbitP1_0=P1^0;//M1
sbitP1_1=P1^1;//M1
sbitP1_2=P1^2;//M2
sbitP1_3=P1^3;//M2
/********************************************************************
延时函数
*********************************************************************/
voiddelay(uchart)//延时程序
{
ucharm,n,s;
for(m=t;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
主函数
*********************************************************************/
main()
{
while
(1)
{
if(P2_0==0){delay(3);if(P2_0==0)//M1启动
{
P1_0=1;
P1_1=0;
}}
if(P2_1==0){delay(3);if(P2_1==0)//M1停止
{
P1_0=1;
P1_1=1;
}}
if(P2_2==0){delay(3);if(P2_2==0)//M2启动
{
P1_2=1;
P1_3=0;
}}
if(P2_3==0){delay(3);if(P2_3==0)//M2停止
{
P1_2=1;
P1_3=1;
}}
}
}
/********************************************************************
结束
*********************************************************************/
实例三:
直流无刷电机的控制实例
【输入部分接线图】
【输出部分接线图】
【测试程序】
/********************************************************************
汇诚科技
实现功能:
直流无刷电机调试程序
使用芯片:
AT89S52或者STC89C52
晶振:
11.0592MHZ
编译环境:
Keil
*********************************************************************/
#include
#defineucharunsignedchar//宏定义无符号字符型
#defineuintunsignedint//宏定义无符号整型
sbitP2_0=P2^0;//启动
sbitP2_1=P2^1;//停止
sbitP2_2=P2^2;//正转
sbitP2_3=P2^3;//反转
sbitP1_0=P1^0;//M1
sbitP1_1=P1^1;//M1
/********************************************************************
延时函数
*********************************************************************/
voiddelay(uchart)//延时程序
{
ucharm,n,s;
for(m=t;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
主函数
*********************************************************************/
main()
{
while
(1)
{
if(P2_0==0){delay(3);if(P2_0==0)//启动
{
P1_0=0;
P1_1=0;
}}
if(P2_1==0){delay(3);if(P2_1==0)//停止
{
P1_0=0;
P1_1=1;
}}
if(P2_2==0){delay(3);if(P2_2==0)//正转
{
P1_0=1;
P1_1=0;
}}
if(P2_3==0){delay(3);if(P2_3==0)//反转
{
P1_0=0;
P1_1=0;
}}
}
}
/********************************************************************
结束
*********************************************************************/
步进电机小知识
1.什么是步进电机?
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:
当步进驱动器
接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及
步进角)。
您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;
同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的
目的。
2.步进电机分哪几种?
步进电机分三种:
永磁式(PM),反应式(VR)和混合式(HB)
永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;
反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振
动都很大。
在欧美等发达国家80年代已被淘汰;
混合式步进是指混合了永磁式和反应式的优点。
它又分为两相和五相:
两相步进
角一般为1.8度而五相步进角一般为0.72度。
这种步进电机的应用最为广泛。
3.什么是保持转矩(HOLDINGTORQUE)?
保持转矩(HOLDINGTORQUE)是指步进电机通电但没有转动时,定子锁住转
子的力矩。
它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近
保持转矩。
由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速
度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。
比如,
当人们说2N.m的步进电机,在没有特殊说明的情况下是指保持转矩为2N.m的步
进电机。