首页 > 代码库 > 倒立摆

倒立摆

#include "sys.h"


int main()
{
SYS_CONFIG(); 
  Daolibai_Init();//单摆各部分接口初始化     
while(1)

         UpdateAngel();         //实时转换更新角度值        
     //   NOWStep(CurrentStep); 
  printf("当前角度为%d度\t",CurAngel);
//         KEY_check();
//        printf("键值:%d",CurrentStep);
// step1();
//      printf("signal:%d  %d\r\n",signal,CurAngel);
//        if(CurrentStep != 5)
//         delay_ms(400);
        Step_Turn(BACK    ,0.3,1000*1.0);
   Step_Turn(FOREWARD,0.3,1000*1.0);
    }

}



void UpdateAngel(void)
{
      u16 temp = TIM3 -> CNT;
      if(temp > 58000)
      {
//            printf("记数器当前值为:负%d \n\n",60000-temp);
            CurAngel = 360-(60000-temp)*360 / 2000;
           printf("当前角度为%d度\t",CurAngel);
      }
      else
      {
//          printf("记数器当前值为:%d \n\n",temp);
          CurAngel = ((temp % 2000)*360/2000);
         printf("当前角度为%d度\t",CurAngel);
      }
}

步进电机的转速可以用频率来控制,步进电机的运行频率跟转速成正比,可以通过计算公式,计算出步进电机的转速。  
步进电机转速 = 频率 * 60 /((360/T)*x)   步进电机的转速单位是: 转/分  频率单位是:赫兹  x实指细分倍数  T:固有步进角  举例说明:  
步进电机采用整步,即1细分;频率1K,即1000赫兹;套用公式:1000 * 60/200=300转/分  注意事项:此公式适应于两相步进电机。