arduino arduino基礎

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

投稿日:2018年12月26日 更新日:

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

使用するもの

・Arduino UNO(https://amzn.to/2TyXG31)
・USBケーブル(https://amzn.to/2TyXG31)
・ブレッドボード(https://amzn.to/2RavGpK)
・ジャンパワイヤ(https://amzn.to/2CgByDD)
・ステッピングモータ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
VM 12V電源(+)
GND 12V電源(ー)、Arduino GNDピン
AOUT1~AOUT2 ステッピングモータ
VCC Arduino 5Vピン
MODE VCC
AIN1~BIN2 Arduino 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, arduino基礎

Copyright© 物を作る者 , 2019 All Rights Reserved Powered by AFFINGER5.