|
求救!急!步进电机出现一走一停现象。先感谢大家帮忙我是做电机新手,最近在调一款带电机产品出现这种状况。急求大家帮忙解决!万分感激
就是我用PWM加2803驱动步进电机
PWM是用单独一个MCU模块输出
细分后我的电机出现一走一停的现象
慢速可以看出,快一点的话就成了抖动
我分析是细分换相后有一段PWM++(从0加到20)这一段就停下然后继续走
在此本人做过小细分的64细分跟32细分也都会出现这用情况!很想知道到底是怎么回事,肯请各位高手指点。
64细分正弦波形数据如下:
uchar code motor64[]={
255,255,254,254,254,253,252,251,250,249,247,246,244,242,240,
238,235,233,230,228,225,222,219,215,212,208,205,201,197,193,
189,185,180,176,171,167,162,157,152,147,142,136,131,126,120,
114,109,103,97,92,86,80,74,68,62,56,50,43,37,31,24,19,13,6,0 //65
};
程序附上忘各位仁兄帮忙
if(!motor_C_R)
{
if(task>3)
{
task = 0;
if((++motor_steptimer) >= M_step)
{
motor_steptimer = 0;
MOTOR_OVERstep_flag = 0;
TR1 = 0;
}
}
switch(task)
{
case 0:
{
PWMB++;
if(PWMB>=255){task++;}
PWMA = 0;
}
break;
case 1:
{
PWMA++; //此处停了下,为什么呢?
if(PWMA>=255){task++;}
PWMB = 255;
}
break;
case 2:
{
PWMB--;//此处停了下,为什么呢?
if(PWMB==0){task++;}
PWMA = 255;
}
break;
case 3:
{
PWMA--;//此处停了下,为什么呢?
if(PWMA==0){task++;}
PWMB = 0;
}
break;
default:task=0; break;
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|