打印
[DemoCode下载]

51单片机实现步进电机加减速的例子-加注释

[复制链接]
2253|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小猫爱吃鱼|  楼主 | 2015-8-16 20:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void  motor_ffw()
{
   unsigned char i;

      for (i=0; i<8; i++)       //一个周期转30度
        {
          P1 = FFW[i]&0x1f;  //取数据
  //FFW为步进码
          delay();           //调节转速
        }
     }



void delay()  
{                          
   unsigned int k,t;
    t=rate;  //转速定义
   while(t--)
   {
     for(k=0; k<150; k++)
     { }
   }
}
void motor_turn()
{
unsigned char x;
rate=0x0a;
x=0x40;
do
{
  mote_ffw();
  rate--;  //每进一步时间越来越短
}while(rate!=0x01);//处于加速过程
do
{
motor_ffw();
x--;     //每减一,进一步,匀速过程
          //此处同样可以设延时函数
} while(x!=0x01);
do
{
  motor_ffw();
  rate++; //每进一步时间越来越长

}  while(rate!=0x0a);//处于减速过程
}


沙发
598330983| | 2015-8-16 21:10 | 只看该作者
加减速主要是延时的问题,还有电机的响应时间,如果电流大了,响应时间会短。

使用特权

评论回复
板凳
734774645| | 2015-8-16 22:16 | 只看该作者
楼主弄个资料啊,那个步进电机分好几种呢。有四线的,还有其他线制的。我见那个光驱和软驱用的是四线的。我前天拆解了几个,正研究怎么弄呢。

使用特权

评论回复
地板
玛尼玛尼哄| | 2015-8-16 22:20 | 只看该作者
这个需要驱动电路支持才行,端口电流太小。

使用特权

评论回复
5
天灵灵地灵灵| | 2015-8-16 22:28 | 只看该作者
写的不明白,没头没尾的,读数据,读哪儿的,如何执行。

使用特权

评论回复
6
643757107| | 2015-8-16 22:40 | 只看该作者
最好弄个变量,然后按键调控这个变量的大小,这个数如果是正,就正转,如果是负值就反转,如果是0就停止,另外单独弄个停止按键,用于快速停止。

使用特权

评论回复
7
芙蓉洞| | 2015-8-17 15:48 | 只看该作者
资料还是很好用的,就是这个程序的电路是什么样子的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

294

帖子

2

粉丝