04-步進馬達

        • 幾乎所有的Arduino學習套件裡,都會有" ULN2003+28BYJ-48步進馬達"這樣的組合,但是要搞定它們並沒想像中簡單,因為Arduino內建的函式庫,對這樣的組合並不友善,所以要花點功夫才能解決。

        • 傑森不吃這套,測試了一堆方法和第三方函式庫後,總算找到一個最好用的函式庫了,就算初學者也能快速上手!

        • ULN2003 Stepper Motor Driver 下載點這裡(如附件)

        • 下載後,解壓縮,將「ULN2003_StepperMotor_master」資料夾放在arduino的libraries資料夾下

        • 其實只要用了這個函式庫,程式就很簡單了,傑森把程式和線路圖都提供給大家,有需要的人就試看看吧!

        • 對了,當你寫好程式,拔掉USB線,改用9V電池供電,這時你可能會發現,步進機不動了,哈,請外加電源給步進機吧,5v的哦!

    • 程式碼:

    • /**********************************************************/

      • // ULN2003驅動板 搭配 28BYJ-48步進馬達測試程式

      • //

      • //

      • //

      • /**********************************************************/

      • #include <StepperMotor.h>

      • StepperMotor motor(8,9,10,11); // 建立步進機物件,參數就是4個接腳,IN1, IN2, IN3, IN4

      • int motorSpeed = 1; // 速度,數字愈大,速度愈慢,在5v電力下,最快可達15 rpm

      • int motorSteps = 4076; // 28BYJ-48 轉一圈,就是4076步 ( 每步的角度是 5.625°/64 )

      • /**********************************************************/

      • void setup(){

      • motor.setStepDuration(motorSpeed); // 設定速度

      • }

      • /**********************************************************/

      • void loop(){

      • // 馬達正轉

      • motor.step(motorSteps); // 轉一圈

      • delay(1000);

      • // 馬達反轉

      • motor.step(-motorSteps); //給負數的步數,就是反轉!

      • delay(1000);

      • }