1. 我想用STC12C5A60S单片机控制STI6608驱动步进电机动作,请问C程序怎么写
这个STI6608驱动器输入信号是Pluse+DIR方式控制,可以带2个步进电机。Reset可以置位步进电机到位置1。刚启动是置位1次就可以了。以下编一简单的演示程序:
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedchar
sbitpluse1=P1^0;
sbitpluse2=P1^1;
sbitdir1=P1^2;
sbitdir2=P1^3;
sbitreset1=P1^4;
sbitreset2=P1^5;
voiddelay(uinta)
{
uinti;
while(a--)for(i=0;i<1100;i++);
}
main()
{
uinti;
reset1=0;
reset2=0;
delay(1000);
reset1=1;
reset2=1;
while(1)
{
for(i=0;i<4800;i++)
{
pluse1=~pluse1;
dir1=1;
delay(5);
}
for(i=0;i<4800;i++)
{
pluse2=~pluse2;
dir2=1;
delay(5);
}
for(i=0;i<4800;i++)
{
pluse1=~pluse1;
dir1=0;
delay(5);
for(i=0;i<4800;i++)
{
pluse2=~pluse2;
dir2=0;
delay(5);
}
}
}
2. 单片机步进电机控制器
步进电机采用二相四拍步进电机,采用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步调整加速度等参数。
3. 步进电机基本控制方法
进电机的基本控制方法有几下几种情况:1、采用专用芯片,这样控制简单,成本就低,但一般工作电流不大约2A左右,工作电压不高,36VDC左右;2、采用MCU+功率器件的方式,电流通过模拟电路来控制,MCU提供细分环形分配器,这种方式,控制相对简单,工作电流和电压都可以做大,但控制参数一般比较固定,应用不灵活;3、采用DSP实现全数字式控制,控制比较复杂,但控制算法灵活,可以自动整定不同电机的控制参数。