标题:
关于单片机驱动小步进电机28BYJ-48的转速问题,自己改了时间就震动,不转
[打印本页]
作者:
wanjony
时间:
2021-5-7 21:59
标题:
关于单片机驱动小步进电机28BYJ-48的转速问题,自己改了时间就震动,不转
使用步进电机为小的28BYJ-48,驱动芯片为ULN2003A,单片机为STC15F2K60s2,驱动步进电机旋转时转速不可控,是通过延时程序来使不同的绕组通电,步进电机旋转,通过speed变量改变延时时间,Proteus里面89C51仿真时改变变量值就可控,但是实际上手就不行了,自己改了时间就震动,不转动。请问有大佬做过吗? 询问一个15单片机适合的延时时间,万分感谢。调用程序为:
void qiangxi_motor(void)
{
speed=2; //200 测试:(1)600 (2)400 (3)200 (4)60 (5)40 (6)25 2时才能转动
for(i=0;i<120;i++) //.2. 845 120
MotorCW(); //顺时针转动
// for(i=0;i<60;i++) // 845 60
// MotorCW(); //顺时针转动
delayms(500);delayms(500);
for(i=0;i<120;i++)
MotorCCW();
delayms(500);delayms(500);
}
void MotorCW(void)
{
uchar i;
for(i=0;i<4;i++)
{
MotorData=phasecw[i];
delayms(speed);//转速调节
}
}
void MotorCCW(void)
{
uchar i;
for(i=0;i<4;i++)
{
MotorData=phaseccw[i];
delayms(speed);//转速调节
}
}
void delayms(int n)
{
int i,j;
for(i=n;i>0;i--)
for(j=845;j>0;j--); //2/3 = 564 4/5 = 676 5/6 704
}
复制代码
步进电机:
51hei.png
(56.84 KB, 下载次数: 75)
下载附件
2021-5-7 22:12 上传
作者:
sgq657785
时间:
2021-5-7 22:39
stc_isp软件里有延时时间程序的,你只要输入要延时的时间后会自动生成延时函数的
作者:
啤酒瓶子老大
时间:
2021-5-8 01:29
不知道谁研究的用51驱动步进电机在教材里。实际上现在步进电机都有配套的驱动器。还有高级点的带闭环控制的步进电机和配套的驱动器。单片机只需要两个口就能控制了,一个口是高电平正转,低电平反转。另一个口是输出多少个脉冲,电机转多少度。这多简单。学习这个我感觉真是浪费了学生的时间。
作者:
birdzhyli
时间:
2021-5-8 01:32
这个电机可以是8个相位切换,中间可以有2相交叉,具体delay时间我测试是相位切换在800us以上,1。5ms可能扭矩更大些
作者:
wanjony
时间:
2021-5-11 15:27
谢谢,大家的回答,问题已经解决了。需要每个引脚输出需要合适的时间,测试单四拍输出时间间隔2ms,还需要有合适的循环数值,一步一步测试出来的
作者:
attitude_Amy
时间:
2021-5-11 17:45
1、确保步进电机的时序是对的 2、延时函数可以自己调节,如果对转速要求不高的话 就把延时调时间长一点 ms级就可以
作者:
峥嵘岁月
时间:
2021-5-11 19:27
这个电机可以是8个相位切换,中间可以有2相交叉,具体delay时间我测试是相位切换在800us以上
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1