メインコンテンツに移動

ステッピングモータ(Stepperクラス)

ステッピングモータ(Stepperクラス)

ステッピングモータを制御をするためのライブラリです。

使用する場合は、#include <stepper.h>を記述して、Stepper stepper(100, 8, 9, 10, 11)のようにインスタンス生成してください。

Stepper用コンストラクタ

概要

Stepperクラスのインスタンス生成用コンストラクタです。

文法

Stepper(steps, pin1, pin2)
Stepper(steps, pin1, pin2, pin3, pin4)

パラメータ

steps: 1回転(360度)のステップ数。100のとき1ステップは3.6度。(int型)
pin1~pin4: 接続するピン

戻り値

なし

setSpeed

概要

1分間あたり何回転するか設定する。

文法

stepper.setSpeed(int rpms)

パラメータ

rpms: 回転速度[rpm]

戻り値

なし

step

概要

モータを回転させる。

文法

stepper.step(int steps)

パラメータ

steps: モータが回転する量をステップ数により指定する。負の数を入力すると逆回転する。

戻り値

なし

getRpms

概要

モータの現在の回転速度を取得する。

文法

int stepper.getRpms()

パラメータ

なし

戻り値

現在の回転速度[rpm]

getPosition

概要

モータの現在の回転位置を取得する。

文法

int stepper.getPosition()

パラメータ

なし

戻り値

現在の回転位置(ステップ数)。


サンプルプログラム


        #include <Arduino.h>
        #include <Stepper.h>
        // change this to the number of steps on your motor
        #define STEPS 100
         
        // create an instance of the stepper class, specifying
        // the number of steps of the motor and the pins it's
        // attached to
        Stepper stepper(STEPS, 8, 9, 10, 11);
         
        // the previous reading from the analog input
        int previous = 0;
         
        void setup()
        {
          // set the speed of the motor to 30 RPMs
          stepper.setSpeed(30);
        }
         
        void loop()
        {
          // get the sensor value
          int val = analogRead(A0);
         
          // move a number of steps equal to the change in the
          // sensor reading
          stepper.step(val - previous);
         
          // remember the previous value of the sensor
          previous = val;
        }