GYJ0081298可编程串口驱动器产品使用手册.docx
《GYJ0081298可编程串口驱动器产品使用手册.docx》由会员分享,可在线阅读,更多相关《GYJ0081298可编程串口驱动器产品使用手册.docx(23页珍藏版)》请在冰点文库上搜索。
GYJ0081298可编程串口驱动器产品使用手册
298可编程串口驱动器产品使用手册
简要说明:
一、尺寸:
长93mmX宽87mmX高40mm
二、主要芯片:
L298N、光电耦合器STC12C2052AD单片机
三、工作电压:
输入电压(5V~12V)输入电压的大小由被控制电机的额定电压决定。
四、可驱动直流(5~12V之间电压的直流电机或者步进电机)
五、最大输出电流2A(瞬间峰值电流3A)
六、最大输出功率25W
七、特点:
(需要对单片机进行编程)
1、具有信号指示
2、转速可调
3、抗干扰能力强
4、具有续流保护
5、可单独控制两台直流电机
6、可单独控制一台步进电机
7、PWM脉宽平滑调速(可使用PWM信号对直流电机调速)
8、可实现正反转
9、采用光电隔离
10、具有扩展IO开口
11、四位LED灯指示(输出信号显示)
12、四位按键输入(可以对单片机编程实现任何控制)
产品最大特点:
可以对单片机编程实现任意控制被控的直流电机或者步进电机。
适用场合:
单片机学习、电子竞赛、产品开发、毕业设计。
。
。
注意啦:
本产品提供例程(附带原理图以及说明!
)
【标注图片】
【输入输出接线图】
【步进电机接线图】
【直流电机接线图】
【应用原理图】
【PCB尺寸图】
【串口连接图】
【485通信连接图】
【上位机控制界面】
【程序下载连接图】
实例一:
步进电机的控制实例
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。
一、步进电机最大特点是:
1、它是通过输入脉冲信号来进行控制的。
2、电机的总转动角度由输入脉冲数决定。
3、电机的转速由脉冲信号频率决定。
二、步进电机的驱动电路
根据控制信号工作,控制信号由单片机产生。
(或者其他信号源)
三、控制步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
(注意:
如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。
四、此板驱动步进电机测试程序
说明:
以单片机控制单元,C语言编程!
【测试程序】
/********************************************************************
实现功能:
控制程序
单片机型号STC12C2052AD
晶振:
11.0592MHZ
波特率:
9600
编译环境:
Keil4.0
作者:
张新春
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
#include
/*------宏定义------*/
#defineucharunsignedchar
#defineuintunsignedint
/*****P3.2=A1;P3.3=B1;P3.4=C1;P3.5=D1****/
/*------输出控制------*/
sbitA1=P3^2;
sbitB1=P3^3;
sbitC1=P3^4;
sbitD1=P3^5;
/*------输入控制------*/
sbitzhengzhuan=P1^2;
sbitfanzhuan=P1^3;
sbitjiasu=P1^4;
sbitjiansu=P1^5;
uinty=18;//定义转动速度,数值越大电机转速越慢反之则快
bitbz1=0;
bitbz2=0;
bitbz3=0;
bitbz4=0;
uchargn=0;
uchark1=2;
/********************************************************************
延时函数
*********************************************************************/
voiddelay(i)//延时函数
{
ucharj,k;
for(j=0;j
for(k=0;k<250;k++);
}
/********************************************************************
正转运行函数
*********************************************************************/
voidzrun()//正转运行
{
A1=1;B1=1;C1=1;D1=0;delay(y);
A1=0;B1=1;C1=1;D1=1;delay(y);
A1=1;B1=0;C1=1;D1=1;delay(y);
A1=1;B1=1;C1=0;D1=1;delay(y);
}
/********************************************************************
反转运行函数
*********************************************************************/
voidfrun()//反转运行
{
A1=1;B1=1;C1=1;D1=0;delay(y);
A1=1;B1=1;C1=0;D1=1;delay(y);
A1=1;B1=0;C1=1;D1=1;delay(y);
A1=0;B1=1;C1=1;D1=1;delay(y);
}
/********************************************************************
反转运行函数
*********************************************************************/
voidtingzhi()//反转运行
{
A1=1;B1=1;C1=1;D1=1;delay(y);
A1=1;B1=1;C1=1;D1=1;delay(y);
A1=1;B1=1;C1=1;D1=1;delay(y);
A1=1;B1=1;C1=1;D1=1;delay(y);
}
/********************************************************************
主函数
*********************************************************************/
main()
{
while
(1)
{
if((zhengzhuan==0)&&(bz1==0)){delay(k1);if(zhengzhuan==0){delay(k1);gn=1;bz1=1;}}if((bz1==1)&&(zhengzhuan==1)){delay(k1);bz1=0;}
if((fanzhuan==0)&&(bz2==0)){delay(k1);if(fanzhuan==0){delay(k1);gn=2;bz2=1;}}if((bz2==1)&&(fanzhuan==1)){delay(k1);bz2=0;}
if((jiasu==0)&&(bz3==0)){delay(k1);if(jiasu==0){delay(k1);if(y>=5){y--;}bz3=1;}}if((bz3==1)&&(jiasu==1)){delay(k1);bz3=0;}
if((jiansu==0)&&(bz4==0)){delay(k1);if(jiansu==0){delay(k1);if(y<=50){y++;}bz4=1;}}if((bz4==1)&&(jiansu==1)){delay(k1);bz4=0;}
if(gn==0){tingzhi();}
if(gn==1){zrun();}
if(gn==2){frun();}
}
}
/********************************************************************
结束
*********************************************************************/
实例二:
直流电机的控制实例
使用直流/步进两用驱动器可以驱动两台直流电机。
分别为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
正转
/
/
高
低
/
高
反转
/
/
低
高
/
高
停止
低
低
/
/
/
高
五、此板驱动直流电机测试程序
【测试程序】
/********************************************************************
实现功能:
控制程序
单片机型号STC12C2052AD
晶振:
11.0592MHZ
波特率:
9600
编译环境:
Keil4.0
作者:
张新春
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
#include
/*------宏定义------*/
#defineucharunsignedchar
#defineuintunsignedint
sbitPWM1=P1^0;
sbitPWM2=P1^1;
/*------输出控制------*/
sbitA1=P3^2;
sbitB1=P3^3;
sbitC1=P3^4;
sbitD1=P3^5;
/*------输入控制------*/
sbitM1ZZ=P1^2;
sbitM1FZ=P1^3;
sbitM2ZZ=P1^4;
sbitM2FZ=P1^5;
bitbz1=0;
bitbz2=0;
bitbz3=0;
bitbz4=0;
uchargn=0;
uchark1=2;
/********************************************************************
延时函数
*********************************************************************/
voiddelay(i)//延时函数
{
ucharj,k;
for(j=0;j
for(k=0;k<250;k++);
}
/********************************************************************
主函数
*********************************************************************/
main()
{
while
(1)
{
if((M1ZZ==0)&&(bz1==0)){delay(k1);if(M1ZZ==0){delay(k1);A1=0;B1=1;bz1=1;}}if((bz1==1)&&(M1ZZ==1)){delay(k1);bz1=0;}
if((M1FZ==0)&&(bz2==0)){delay(k1);if(M1FZ==0){delay(k1);A1=1;B1=0;bz2=1;}}if((bz2==1)&&(M1FZ==1)){delay(k1);bz2=0;}
if((M2ZZ==0)&&(bz3==0)){delay(k1);if(M2ZZ==0){delay(k1);C1=0;D1=1;bz3=1;}}if((bz3==1)&&(M2ZZ==1)){delay(k1);bz3=0;}
if((M2FZ==0)&&(bz4==0)){delay(k1);if(M2FZ==0){delay(k1);C1=1;D1=0;bz4=1;}}if((bz4==1)&&(M2FZ==1)){delay(k1);bz4=0;}
}
}
/********************************************************************
结束
*********************************************************************/
【图片展示】