28BYJ-48步进电机简单的加速方法

如果不加渐进加速的话,在本程序中脉冲的间隔时间最短要delay(780),加了渐进加速后,可以到delay(500),速度不少。但是输出力矩会下降,在高速下,稍微捏住电机轴,电机就不转了。

#include "stc15f2k60s2.h"
#include "intrins.h"
void delay(unsigned int time);

#define                dr_clr()        {P0=0xf0;} 
unsigned char code CW[8]={0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8};
unsigned char code CCW[8]={0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9};
//蓝粉黄橙接P0.0-P0.3
void main()
{
        unsigned int i,n,speed=0;
        for(n=0;n<512*3;n++)
        {
                speed++;
                if(speed>=500)
                speed=500;
                for(i=0;i<8;i++)    
                {   
                        P0=CW;     
                        delay(1000-speed);    //直接跑,要delay780,不然电机卡住 。渐进加速后可到1000-500=500
                }
        }        
        dr_clr();
        while(1);
}

void delay(unsigned int time)
{
        while(--time);
}


测试电压是5V。

心得:如果要提高步进电机最快转动速度,必须要有渐进加速的过程。

粽子糖果 发表于10-19 10:19 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

粽子糖果
粽子糖果(总统)
金币:41624个|学分:51977个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号