[51单片机] 步进电机怎么软件去抖

[复制链接]
 楼主| boltmy 发表于 2013-8-12 16:42 | 显示全部楼层 |阅读模式
怎么让步进电机高速旋转,同时消抖,我写的程序来回抖,哪位懂得讲一下啊
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. char count=0;
  5. char time,i=0;
  6. unsigned char code table_UP   []=    {0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99}; //前进                     
  7. unsigned char code table_Down []=    {0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11}; //后退
  8.                                              
  9. uint X=50;
  10. /*******************************************/
  11. //八拍驱动正转(N*360/400)度
  12. /*******************************************/
  13. void main()
  14. {
  15.         TMOD=0x01;
  16.         //TH0=0x33;
  17.         //TL0=0xf5;
  18.         TH0=(65536-X)/256;        // 2ms
  19.         TL0=(65536-X)%256;
  20.         EA=1;
  21.         ET0=1;
  22.         EX0=1;
  23.         TR0=1;
  24.         while(1)
  25.         {

  26.         }
  27. }

  28. void time0() interrupt 1 using 1
  29. {       
  30.         //TH0=0x33;
  31.         //TL0=0xf5;
  32.         TH0=(65536-X)/256;
  33.         TL0=(65536-X)%256;
  34.         count++;
  35.                 if(count==10)//count==X
  36.         {
  37.                 count=0;
  38.                 if(i<8)
  39.                 {
  40.                 P0=table_UP[i];i++;
  41.                 }
  42.             if(i==8)
  43.             {i=0;}
  44.         }

  45. }



 楼主| boltmy 发表于 2013-8-12 16:44 | 显示全部楼层
自己顶
liudongabc 发表于 2013-8-12 17:00 | 显示全部楼层
是来回转吗?在数组里加个停止位看看
 楼主| boltmy 发表于 2013-8-12 17:10 | 显示全部楼层
liudongabc 发表于 2013-8-12 17:00
是来回转吗?在数组里加个停止位看看

加0x00吗
liudongabc 发表于 2013-8-12 17:17 | 显示全部楼层
恩,试试看。还有就是确认一下数组的数据顺序有没有排对。
 楼主| boltmy 发表于 2013-8-12 17:50 | 显示全部楼层
liudongabc 发表于 2013-8-12 17:17
恩,试试看。还有就是确认一下数组的数据顺序有没有排对。

还是斗啊,来回摆
 楼主| boltmy 发表于 2013-8-12 17:56 | 显示全部楼层
一个问题搞这么久
 楼主| boltmy 发表于 2013-8-12 17:59 | 显示全部楼层
boltmy 发表于 2013-8-12 17:56
一个问题搞这么久

累感不爱
ballack_linux 发表于 2013-8-12 18:07 | 显示全部楼层
你用什么供电的
ballack_linux 发表于 2013-8-12 18:07 | 显示全部楼层
变压器加稳压芯片、?
 楼主| boltmy 发表于 2013-8-12 18:22 | 显示全部楼层
ballack_linux 发表于 2013-8-12 18:07
你用什么供电的

直流电源9V供电
 楼主| boltmy 发表于 2013-8-12 18:23 | 显示全部楼层
ballack_linux 发表于 2013-8-12 18:07
变压器加稳压芯片、?

L298N驱动
 楼主| boltmy 发表于 2013-8-12 18:28 | 显示全部楼层
速度与稳定性怎么兼得
ballack_linux 发表于 2013-8-12 18:34 | 显示全部楼层
我之前做过,不会发生抖动的情况:
1、蓄电池供电,电流持续;
2、可以试试光电隔离,毕竟电机都是线圈绕组,会有方向电流干扰;
gurong60 发表于 2013-8-12 21:42 | 显示全部楼层
每步延时要调,如果还觉得抖,那么就要做细分驱动了

评分

参与人数 1威望 +1 收起 理由
liwei12400 + 1 赞一个!

查看全部评分

 楼主| boltmy 发表于 2013-8-12 21:48 | 显示全部楼层
gurong60 发表于 2013-8-12 21:42
每步延时要调,如果还觉得抖,那么就要做细分驱动了

现在可以转了。。
ygl968 发表于 2013-8-13 09:33 | 显示全部楼层
参考
ayb_ice 发表于 2013-8-13 11:09 | 显示全部楼层
控制需要加减速的
 楼主| boltmy 发表于 2013-8-13 11:21 | 显示全部楼层
ayb_ice 发表于 2013-8-13 11:09
控制需要加减速的

但是中间一直在斗,是没加减速的原因吗
helezh 发表于 2013-8-13 12:42 | 显示全部楼层
失步了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

45

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部