天天看點

基于單片機的步進電機調速系統設計(#0509)

電機控制在監控器材、醫療器械、電動閥門、電動窗簾、家用電器、旋轉燈具等方面有着廣泛的應用,是以設計一款可控性好、精度高的電機控制系統是一件非常有意義的事。

功能描述

1、采用51單片機作為主要制器;

2、采用DC-5V步進減速電機(步進角度5.625°,減速比1/64);

3、采用內建晶片ULN2003作為電機驅動;

4、可通過按鍵控制正反轉及速度;

5、四位數位管:第1位顯示電機的正反轉,第3位和第4位顯示電機運作速度的檔數;

6、紅色LED:一個電源訓示,其他四個燈不同的循環閃爍周期訓示電機轉速變化。

基于單片機的步進電機調速系統設計(#0509)

按鍵說明

KEY1:正轉控制; KEY2:反轉控制;

KEY3:加速控制; KEY4:減速控制;

KEY5:暫停/繼續;

整體方案

基于單片機的步進電機調速系統設計(#0509)

電路設計

采用Altium Designer作為電路設計工具。Altium Designer通過把原理圖設計、PCB繪制編輯、拓撲邏輯自動布線、信号完整性分析和設計輸出等技術的完美融合,為設計者提供了全新的設計解決方案,使設計者可以輕松進行設計,熟練使用這一軟體必将使電路設計的品質和效率大大提高。

基于單片機的步進電機調速系統設計(#0509)

仿真設計

主程式設計

void main()
{
  T0_T1_init();
  buf[1] = 10;//不顯示
  while(1)
  {
    display();
    if(s1 == 0)
    {
      delay1m(3);
      if(s1 == 0)
      {
        flag1 = 0;//正轉
        buf[0] = 0;//最高位顯示0
    //    haha = 0x00;//停止
         
      }
      while(!s1) display();
    }
    if(s2 == 0 )
    {
    
      delay1m(3);
      if(s2 == 0)
      {
      
        flag1 = 1;//反轉
        buf[0] = 1;//最高位顯示1
    //    haha = 0x00;//停止
      }
      while(!s2) display();
    }
    if(s3 == 0)    //速度加1檔
    {
      delay1m(3);
      if(s3 == 0)
      {
        k++;
        TR1=1;
        if(k > 10 )
        {
          k = 1;
        }
        buf[2]= k/10;
        buf[3]= k%10;
      } 
      while(!s3) display();
    }
    if(s4 == 0)  //速度減1檔
    {
      delay1m(3);
      if(s4 == 0)
      {
        k--;
        TR1=1;
        if(k <= 0)
        {
          k = 10;
        }
        buf[2]= k/10;
        buf[3]= k%10;
      }
      while(!s4) display();
    }
    if(s5==0)
    {
      delay1m(3);
      if(s5==0)
      {
        if(TR1==1)
        {
          pause=k;
          k=0;
          TR1=0;
          a=b=c=d=0;
        }
        else if(TR1==0)
        {
          k=pause;
          TR1=1;
        }
        buf[2]= k/10;
        buf[3]= k%10;
        while(!s5) display();
      }
    }
  } 

}      

源檔案擷取