找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2774|回复: 6
打印 上一主题 下一主题
收起左侧

关于单片机驱动小步进电机28BYJ-48的转速问题,自己改了时间就震动,不转

[复制链接]
跳转到指定楼层
楼主
15黑币
使用步进电机为小的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. }
复制代码

步进电机:



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:227393 发表于 2021-5-7 22:39 来自手机 | 只看该作者
stc_isp软件里有延时时间程序的,你只要输入要延时的时间后会自动生成延时函数的
回复

使用道具 举报

板凳
ID:230742 发表于 2021-5-8 01:29 | 只看该作者
不知道谁研究的用51驱动步进电机在教材里。实际上现在步进电机都有配套的驱动器。还有高级点的带闭环控制的步进电机和配套的驱动器。单片机只需要两个口就能控制了,一个口是高电平正转,低电平反转。另一个口是输出多少个脉冲,电机转多少度。这多简单。学习这个我感觉真是浪费了学生的时间。
回复

使用道具 举报

地板
ID:889094 发表于 2021-5-8 01:32 来自手机 | 只看该作者
这个电机可以是8个相位切换,中间可以有2相交叉,具体delay时间我测试是相位切换在800us以上,1。5ms可能扭矩更大些
回复

使用道具 举报

5#
ID:369050 发表于 2021-5-11 15:27 | 只看该作者
谢谢,大家的回答,问题已经解决了。需要每个引脚输出需要合适的时间,测试单四拍输出时间间隔2ms,还需要有合适的循环数值,一步一步测试出来的
回复

使用道具 举报

6#
ID:919457 发表于 2021-5-11 17:45 | 只看该作者
1、确保步进电机的时序是对的 2、延时函数可以自己调节,如果对转速要求不高的话 就把延时调时间长一点 ms级就可以
回复

使用道具 举报

7#
ID:826403 发表于 2021-5-11 19:27 来自手机 | 只看该作者
这个电机可以是8个相位切换,中间可以有2相交叉,具体delay时间我测试是相位切换在800us以上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表