标题: 步进电机如何加快速度 [打印本页]

作者: Fastearin    时间: 2016-12-25 23:51
标题: 步进电机如何加快速度
将步进电机驱动作为子程序调用,但是由于主程序处理其他子模块需要很多时间导致步进电机装的很慢,这种情况下该如何加快转速,比如让步进电机的驱动并行运行??
下面是我的代码:
void main(void)
{         
        InitLcd();
        temp_set_num=250;
        while(1)
        {
           temp_display();  //主要是这个显示模块要耗费很多时间
          
           stepper(&x);
        };       
}


#include <reg51.h>
#include "key.h"

unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10}; //正转表格
unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02}; //反转表格

/*       延时函数            */

void Delay_2(unsigned int i)//延时
{
while(--i);
}

/*       主函数          */

void stepper(unsigned int *x)
{

//unsigned char i;

        if(flag==1)            
         {
             (*x)++;      //4相
             if((*x)==4) (*x)=0;
             P1=F_Rotation[*x];  //输出对应的相 可以自行换成反转表格
             Delay_2(1);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
                 
          }
        if(flag==2)
         {
                 (*x)++;     //4相
                 if((*x)==4) (*x)=0;
             P1=B_Rotation[*x];  //输出对应的相
             Delay_2(1);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
                 
          }
        if(flag==0)  //停止
         {
          P1=0;
          }
}



作者: admin    时间: 2016-12-26 05:15
虽然通过优化程序也是可以做到加快步进电机的速度,如果不是量产的话加一个步进电机驱动芯片会更容易些吧!
作者: Fastearin    时间: 2016-12-26 08:11
谢谢您的回答。我是一名学生,这是一个微机实验,做模拟空调,只有一个51单片机,不做量产。我后来的想法是用定时器中后段来单独做。
作者: 唯动ever    时间: 2016-12-26 09:49
速度控制: 步进电机的运转速度会与输入的脉冲速度成等比例的关系,所以在脉冲的速度愈快时,步进电机的转速也会跟着加快;脉波速度愈慢时,电机的转速自然也跟着变慢。
电机的运转速度(RPM)与脉冲速度(PPS,又称Hz)间的关系式如下:
电机的运转速度(RPM)= 脉冲速度(PPS或 Hz) × 60 ÷ 步进电机分割数/圈
说明:
1.RPM为一般电机的速度单位,即 rev / min,为每分钟电机所转的圈数;PPS为步进、伺服电机的速度单位,即pulse per second,为每秒所送出的脉冲数。
2.由于RPM与PPS的单位不同,所以于转换的过程中要先将PPS的秒钟乘以60变为分钟 。
3.步进电机分割数/圈,又代表要让电机转一圈所必须送出的脉冲数。
4.上述公式拆解后之单位表示为→ rev/min = pulse/sec ×60 ×1/分割数
实例:五相半步级角0.36°时(即1000分割/圈)
(1)电机的运转速度600RPM时,即相当于脉冲速度10,000PPS。
(2)脉冲速度3,000PPS,即相当于电机的运转速度180RPM。
位置控制: 步进电机不需要位置传感器(SENSOR),就可依照输入的脉冲数决定移动量,并将负载顺利、正确的送达指定位置点上。而移动量的大小,是依照电机分辨率的大小与输入的脉冲数来决定。脉冲数(PULSE)与移动量间的关系式如下: 位置移动量( °)= 步进电机分辨率( °)× 输入脉冲数
实例:二相全步级角1.8°时
*当输入1000个脉冲数(即1000PULSE),此时之移动量会是1800°,刚好为5圈。
作者: jubaolun    时间: 2016-12-26 13:51
1,延时函数调小点,或用us 级。
2,把晶振放大点。
作者: KJK    时间: 2016-12-26 14:54
进电机的速度,取决于您的软件给步进电机发的脉冲信号的频度。一种固定的频度对应于一个固定的转速。如要减速度,只要把每个脉冲的间隔时间逐步加大一点;如要加速,只要把每个脉冲的间隔时间逐步缩短
作者: haiy    时间: 2016-12-26 15:37
买好 质量好的 电机
作者: 庄丽君君君    时间: 2016-12-26 15:57
晶振放大。
作者: a117699    时间: 2016-12-26 15:57
减少延时的时间能让你转的更快,但想更快就带换好点的步进电机,或者不带减速的
作者: 安羽    时间: 2016-12-26 22:18
可以按键调整,调用delay
作者: 17863201837    时间: 2016-12-26 22:31
步进电机的运转速度会与输入的脉冲速度成等比例的关系,所以在脉冲的速度愈快时,步进电机的转速也会跟着加快;脉波速度愈慢时,电机的转速自然也跟着变慢。 电机的运转速度(RPM)与脉冲速度(PPS,又称Hz)间的关系式如下: 电机的运转速度(RPM)= 脉冲速度(PPS或 Hz) × 60 ÷ 步进电机分割数/圈
作者: cj756801940    时间: 2016-12-27 12:38
http://wenku.baidu.com/link?url= ... BFIsqgfzCwkwjQycKMO
这是步进电机速度调节方法的文档的链接,希望有帮助
作者: liuzhaoxin1020    时间: 2016-12-29 13:04
用驱动芯片tb6560





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1