‘壹’ 如何用51单片机驱动2相4线步进电机
l298就行,网上有的是,想稍微好一点就用mos桥
‘贰’ 单片机步进电机控制器
步进电机采用二相四拍步进电机,采用89s51 或STc 系列作为控制芯片
系统具有下列功能:A采用闭环控制B可进行位移设定,前进至终点后延时1s返回值原点停止C可进行实际位移值设定D可手动控制正反转。
步进电机控制器是一种能够发出均匀脉冲信号的电子产品,它发出的信号进入步进电机驱动器后,会由驱动器转换成步进电机所需要的强电流信号,带动步进电机运转。步进电机控制器能够准确的控制步进电机转过每一个角度。
驱动器所接收的是脉冲信号,每收到一个脉冲,制动器会给电机一个脉冲使电机转过一个固定的角度,就因为这个特点,步进电机才会被广泛的应用到现在的各个行业里。
驱动电路
在步进电机的应用中,最需要考虑的重要事项之一就是设计匹配的驱动电路。步进电机的动态性能非常地依赖驱动电路。图1显示了步进电机驱动系统的结构图。驱动步进电机需要开关电流从一个定子绕组到另一个。这种开关功能被驱动电路提供,驱动电路排列,分配和放大来自信号电路的脉冲序列。步进电机的绕组以指定的次序被激励。
集成电路的实用性已经使得对于额定电流小于3安培的小型步进电机使用分立元件构造驱动电路是不必要的。例如,SGS L7180与L7182对于单极性驱动,和L293与L298对于双极性驱动,能够很容易地使用在紧密的控制器里。
应用设置
1.设置步进驱动器的细分数,通常细分数越高,控制分辨率越高。但细分数太高则影响到最大进给速度。一般来说,对于模具机用户可考虑脉冲当量为0.001mm/P(此时最大进给速度为9600mm/min)或者0.0005mm/P(此时最大进给速度为4800mm/min);对于精度要求不高的用户,脉冲当量可设置的大一些,如0.002mm/P(此时最大进给速度为19200mm/min)或0.005mm/P(此时最大进给速度为48000mm/min)。对于两相步进电机,脉冲当量计算方法如下:脉冲当量=丝杠螺距÷细分数÷200。
2.起跳速度:该参数对应步进电机的起跳频率。所谓起跳频率是步进电机不经过加速,能够直接启动工作的最高频率。合理地选取该参数能够提高加工效率,并且能避开步进电机运动特性不好的低速段;但是如果该参数选取大了,就会造成闷车,所以一定要留有余量。在电机的出厂参数中,一般包含起跳频率参数。但是在机床装配好后,该值可能发生变化,一般要下降,特别是在做带负载运动时。所以,该设定参数最好是在参考电机出厂参数后,再实际测量决定。
3.单轴加速度:用以描述单个进给轴的加减速能力,单位是毫米/秒平方。这个指标由机床的物理特性决定,如运动部分的质量、进给电机的扭矩、阻力、切削负载等。这个值越大,在运动过程中花在加减速过程中的时间越小,效率越高。通常,对于步进电机,该值在100 ~ 500之间,对于伺服电机系统,可以设置在400 ~ 1200之间。在设置过程中,开始设置小一点,运行一段时间,重复做各种典型运动,注意观察,如果没有异常情况,然后逐步增加。如果发现异常情况,则降低该值,并留50%~100%的保险余量。
4.弯道加速度:用以描述多个进给轴联动时的加减速能力,单位是毫米/秒平方。它决定了机床在做圆弧运动时的最高速度。这个值越大,机床在做圆弧运动时的最大允许速度越大。通常,对于步进电机系统组成的机床,该值在400~1000之间,对于伺服电机系统,可以设置在1000 ~ 5000之间。如果是重型机床,该值要小一些。在设置过程中,开始设置小一点,运行一段时间,重复做各种典型联动运动,注意观察,如果没有异常情况,然后逐步增加。如果发现异常情况,则降低该值,并留50%~100%的保险余量。
通常考虑到步进电机的驱动能力、机械装配的摩擦、机械部件的承受能力,可以在厂商参数中修改各个轴的最大速度,对机床用户实际使用时的三个轴最大速度予以限制,。
5.根据三个轴零点传感器的安装位置,设置厂商参数中的回机械原点参数。当设置正确后,可运行“操作”菜单中的“回机械原点”。先单轴回,如果运动方向正确则继续回,否则需停止,重新设置设置厂商参数中的回机械原点方向,直至所有轴都可回机械原点。
6.设置自动加油参数(设置得小一些,如5秒加一次油),观察自动加油是否正确,如果正确,则将自动加油参数设置到实际需要的参数。
7.校验电子齿轮和脉冲当量的设定值是否匹配。可以在机床的任意一根轴上做个标记,在软件中把该点坐标设为工作零点,用直接输入指令、点动或手轮等工作方式使该轴走固定距离,用游标卡尺测量实际距离与软件中坐标显示距离是否相附。
8.测定有无丢脉冲。您可以用直观的方法:用一把尖刀在工件毛坯上点一个点,把该点设为工作原点,抬高Z轴,然后把Z轴坐标设为0;反复使机床运动,比如空刀跑一个典型的加工程序(最好包含三轴联动),可在加工中暂停或停止,然后回工件原点,缓慢下降Z轴,看刀尖与毛坯上的点是否吻合。如有偏差,请检查步进驱动器接收脉冲信号的类型,检查端子板与驱动器间接线是否有误。如果还出现闷车或丢步,按10、11、12步调整加速度等参数。
‘叁’ 51单片机控制二相四线步进电机程序
#include<reg52.h> //头文件
sbit A1=P1^0; //定义A线圈正端口
sbit A2=P1^1; //定义A线圈负端口
sbit B1=P1^2; //定义B线圈正端口
sbit B2=P1^3; //定义B线圈负端口
sbit en1=P2^0;
sbit en2=P2^1;
int t=0;
#define F1 {A1=1;B1=0;A2=0;B2=0;} //A线圈通正向电压
#define F2 {A1=0;B1=1;A2=0;B2=0;} //B线圈通正向电压
#define F3 {A1=0;B1=0;A2=1;B2=0;} //A线圈通反向电压
#define F4 {A1=0;B1=0;A2=0;B2=1;} //B线圈通反向电压
#define OFF {A1=0;B1=0;A2=0;B2=0;} //全部断电
unsigned int b=2000; //中断初值变量
void Init_Timer0(void) //初始化定时器0
{
TMOD=0x01; //定时器0,使用模式1,16位定时器
TH0=(65536-b)/256; //给定初值
TL0=(65536-b)%256;
EA=1; //打开总中断
ET0=1; //打开定时器中断
TR0=1; //开定时器
}
void main() //主函数
{
en1=1;
en2=1;
Init_Timer0(); //初始化定时器0
while(1);
}