<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> STM32 >> 瀏覽文章

        使用Rainbow控制步進電機

        作者:未知   來源:會員上傳   點擊數:  更新時間:2014年05月20日   【字體:

        手上有一個步進電機和ULN2003電機驅動模塊,這是之前做Arduino實驗的時候留下的,這幾天正好比較空閑,就移植了一個Arduino的Stepper庫,這個庫是用于控制步進電機的。這次我是將ULN的IN1-IN3接到Rainbow的PA1、PA3、PA5、PA7,硬件情況如下圖:



            在軟件包的“Projects\Stepper_OneRevolution”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調試。代碼非常簡單,貼出來了:
        #include "WProgram.h"
        #include "Stepper.h"
         
        //根據馬達調整合適的分辨率
        const int stepsPerRevolution = 200;
         
        //5線4相步進電機,使用PA1, PA3, PA5, PA7
        Stepper myStepper(stepsPerRevolution, PA1, PA3, PA5, PA7);
         
        void setup()
        {
          //啟用默認串口,波特率9600
          Serial.start();
          //設置馬達速度為60rpm
          myStepper.setSpeed(60);
        }
         
        void loop()
        {
          // 發送順時針轉動指令
          Serial.println("clockwise");
          myStepper.step(stepsPerRevolution);
          delay(500);
          
           // 發送逆時針轉動指令
          Serial.println("counterclockwise");
          myStepper.step(-stepsPerRevolution);
          delay(500); 
        }
         
        int main(void)
        {
          //初始化開發板
          boardInit();
          setup();
         
          while(1) loop();
        }
         
            程序編譯無誤后,下載到Rainbow中,可以看到步進電機轉起來了,和Arduino中運行效果完全一樣。只是在這個應用中,我發現步進電機時鐘只順時針轉動,不逆時針轉,我跟蹤了一下程序,邏輯完全正確,同時Arduino中運行起來也是這樣的,我對電機這塊沒有什么研究,但是程序邏輯方面沒有問題,初步判斷可能是我這個步進電機的問題,身邊沒有其它型號的步進電機,所以無法最終確定問題所在。
        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮