文号
t54262
阅读
4990
回复
5
收藏
4
单片机控制28BYJ步进电机问题
2013/02/02
IP:重庆
本人刚刚入手步进电机 现在在玩5线4相
等熟悉下后在玩2相4线
在此请教高手们一些问题:
1 源码中怎么使在转的步进电机停下来 请写个实例 谢谢

2 转速如何调节

3 如果我想让步进电机转动45度后停下  那么那个45度在源码中怎么表示

我是一个高中生 没学过这些 只是自己玩玩  而且材料缺乏 请高手们指教下
谢谢
13年11个月前IP:未同步
494251
1楼

我以前写的,也是五线四相的电机,可以参考下
引用
评论
13年11个月前IP:未同步
494334
2楼
步进电机应该是靠某些芯片来控制,可以查找一下相关的芯片手册、datasheet(pdf)、例程等等。
引用
评论
13年11个月前IP:未同步
494364
3楼
你给的脉冲节拍停了或者直接不给信号了,步进电机就停了,如果有负载的话,在惯性下可能还会小转一会儿,但是你信号不变,注意是不变不是没有信号,比如说停下的状态是AB相高电平,CD相低,就一直保持这个状态,那么步进电机会被电磁力“锁住”,可以少冲一点。
转速的话,你切换节拍信号的速率越快,它转得就越快,就像喊121,喊得越快,走得越快。
45度在源码中怎么表示?一步的度数是多少,用45度/每一步的度数,就知道你该走多少步了,但是注意没有其它检测装置的话,步数出来步进电机的转角会有误差的。
实例其实不重要,如果直接给楼主一段代码,也许您也不明白是什么意思,重要的是方法和设计思想。
材料其实也很多,比如百度百科步进电机,讲得比我的详细多了。
引用
评论
孤独作者
13年11个月前IP:未同步
494590
4楼
#include "reg52.h"

unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6};
void delay(unsigned int t);

//Motor
sbit F1 = P1^0;
sbit F2 = P1^1;
sbit F3 = P1^2;
sbit F4 = P1^3;

///////////////////////////////////////
//步进电机驱动
void  motor_ffw()
{
   unsigned char i;
  
      for (i=0; i<8; i++)       //一个周期转30度
        {
          P1 = FFW[i]&0x1f;     //取数据
          delay(5);            //调节转速
        }
     }


void delay(unsigned int t)
{                          
   unsigned int k;
   while(t--)
   {
     for(k=0; k<60; k++)
     { }
   }
}


main()
{
    while(1)
    {
     motor_ffw();

     }
}

这个是我这个步进电机转动的源码
型号是28BYJ-48   5V
请教下  让它停的在源码中怎么表示  该放在哪个位置?
还有   那个转速调节那最小只能是2   如果写1的话外面就不转了
难道它的最大速度就是这个吗?
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的