标题: 关于单片机驱动小步进电机28BYJ-48的转速问题,自己改了时间就震动,不转 [打印本页]

作者: wanjony    时间: 2021-5-7 21:59
标题: 关于单片机驱动小步进电机28BYJ-48的转速问题,自己改了时间就震动,不转
使用步进电机为小的28BYJ-48,驱动芯片为ULN2003A,单片机为STC15F2K60s2,驱动步进电机旋转时转速不可控,是通过延时程序来使不同的绕组通电,步进电机旋转,通过speed变量改变延时时间,Proteus里面89C51仿真时改变变量值就可控,但是实际上手就不行了,自己改了时间就震动,不转动。请问有大佬做过吗?  询问一个15单片机适合的延时时间,万分感谢。调用程序为:
  1. void qiangxi_motor(void)
  2. {
  3.                 speed=2;   //200     测试:(1)600 (2)400 (3)200 (4)60  (5)40  (6)25  2时才能转动
  4.                 for(i=0;i<120;i++)    //.2.  845    120
  5.                         MotorCW();  //顺时针转动
  6. //                for(i=0;i<60;i++)    // 845    60
  7. //                        MotorCW();  //顺时针转动
  8.                  delayms(500);delayms(500);
  9.                 for(i=0;i<120;i++)
  10.                         MotorCCW();
  11.                 delayms(500);delayms(500);
  12. }

  13. void MotorCW(void)
  14. {
  15. uchar i;
  16. for(i=0;i<4;i++)
  17.   {
  18.    MotorData=phasecw[i];
  19.    delayms(speed);//转速调节
  20.   }
  21. }

  22. void MotorCCW(void)
  23. {
  24.          uchar i;
  25.          for(i=0;i<4;i++)
  26.                 {
  27.                  MotorData=phaseccw[i];
  28.                  delayms(speed);//转速调节
  29.                 }
  30. }


  31. void delayms(int n)
  32. {
  33.   int i,j;
  34.   for(i=n;i>0;i--)
  35.     for(j=845;j>0;j--);    //2/3 = 564  4/5 = 676   5/6 704
  36. }
复制代码

步进电机:




作者: 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