メインコンテンツに移動

ステッピングモータ(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分間あたり何回転するか設定する。

文法

setSpeed(int rpms)

パラメータ

rpms: 回転速度[rpm]

戻り値

なし

step

概要

モータを回転させる。

文法

step(int steps)

パラメータ

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

戻り値

なし

getRpms

概要

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

文法

int getRpms()

パラメータ

なし

戻り値

現在の回転速度[rpm]

getPosition

概要

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

文法

int 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;
        }