Arduino

Arduinoでステッピングモータを制御してみる

2018年12月26日

こんばんは!
今回はArduinoを使ってステッピングモータを制御していこうと思います。

使用するもの

・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・ステッピングモータMDP-35A
・モータードライバDRV8835(https://amzn.to/2CjBGT7)
・電池ボックス12V(https://amzn.to/2TKNkgB)

ステッピングモータとは

ステッピングモータはモータドライバに入力されるパルスに応じて回転をするモータです。
ステッピングモータの種類によって1パルスの入力に対して回転する角度が異なり、例として1パルスで1.8°回転するステッピングモータだと、200パルスで1回転します。
1パルスで回転する角度をステップ角、一回転するのに必要なパルス数をステップ数と言います。

今回使用するステッピングモータは「MDP-35A」です。
このステッピングモータの性能は
ステップ角:7.5°
ステップ数:48
駆動電圧:12V
です。

モータドライバとは

モータドライバはモータに流す電流量や、タイミングなどを制御するための回路が集合している集積回路です。

今回使用するモータドライバはDRV8835です。

手順

まずハード側からやっていきます。
以下のように配線します。

DRV8835
VM12V電源(+)
GND12V電源(ー)、Arduino GNDピン
AOUT1~AOUT2ステッピングモータ
VCCArduino 5Vピン
MODEVCC
AIN1~BIN2Arduino D4~D7ピン

fritzingでDRV8835のパーツが見つからなかったため、今回は写真と表にしました。

次にArduino IDEを起動して次のコードを書いていきます。

今回は、Stepper.hというステッピングモータを駆動するためのライブラリを使用しています。Stepper.hはこちらのサイトからダウンロードすることができます。
Stepper.hのメソッドとして主に次の3つがあります。

・Stepper(steps, pin1, pin2, pin3, pin4):Stepperクラスの新しいインスタンスを作成します。
・setSpeed(rpms):モーター速度を1分あたりの回転数(RPM)で設定します。
・step(steps):直近のsetSpeedの呼び出しによって指定された速度で、モーターを特定のステップ数だけ回転させます。

Stepper.hのメソッドについては公式リファレンスを参照してください。

コードの説明をしていきます。

まず

const int stepsPerRotate = 48;
により、使用するステッピングモータのステップ数を指定しています。
今回使用しているMDP-35Aのステップ数は48ですが、使用するステッピングモータに合わせて変更してください。

次に、
Stepper myStepper(stepsPerRotate, 4, 6, 5, 7);
により、インスタンスを作成しています。

次に、loop()内では

15rpmで1回転
逆回転
30rpmで1回転
50rpmで逆回転
80rpmで2回転

を0.5行おきに繰り返しています。

これをメインボードに書き込むと以下の動画のようにステッピングモータが回転すると思います。

まとめ

今回はArduinoとモータドライバを使用してステッピングモータを制御してみました。
ステッピングモータはCNCフライス、3Dプリンタなど、多くのものに使用されているため、使い方や仕組みを理解していた方がいいと思います。

今回はこれで終わります。
ではまた!

-Arduino

Copyright© 物を作る者 , 2024 All Rights Reserved.