微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 怎么让步进电机高速旋转,同时消抖,我写的程序来回抖...

怎么让步进电机高速旋转,同时消抖,我写的程序来回抖...

时间:10-02 整理:3721RD 点击:

  1. /*******************************************/

  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. char count=0;
  6. char time,i=0;
  7. unsigned char code table_UP   []=    {0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99}; //前进                     
  8. unsigned char code table_Down []=    {0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11}; //后退
  9. unsigned char code table_Left []=    {0x60,0x40,0x50,0x10,0x90,0x80,0xa0,0x20};        //左转                                                                 
  10. unsigned char code table_right[]=    {0x02,0x0a,0x08,0x09,0x01,0x05,0x04,0x06}; //右转
  11. unsigned int step; //记录脉冲数,即要走的步数
  12. uint beat; //步进电机每种驱动方式下的拍数
  13. char *p1,*p2;//存储运行方式表                                             
  14. uint X=500;
  15. /*******************************************/
  16. //八拍驱动正转(N*360/400)度
  17. /*******************************************/
  18. void main()
  19. {
  20.         TMOD=0x01;
  21.         //TH0=0x33;
  22.         //TL0=0xf5;
  23.         TH0=(65536-X)/256;        // 2ms
  24.         TL0=(65536-X)%256;
  25.         EA=1;
  26.         ET0=1;
  27.         EX0=1;
  28.         TR0=1;
  29.         while(1)
  30.         {

  31.         }
  32. }

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

  50. }

复制代码

难道秒沉了?~~

虽然不会,但是步进电机嘛,按照顺序,给出特定的脉冲,看下脉冲时间多少,脉冲间隔多少,什么的。
我看你的脉冲是 A,AB,B,BC,C,CD,D,DA,理论上没问题的。
你用示波器看下,你有没有得到理论的脉冲

步进电机就不是告诉旋转的电机

初步判断是电路问题

刚用示波器看了下,估计是电路问题

步进电机就不是告诉旋转的电机

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top