とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

ステッピングモーターの制御

前回、ステッピングモーターの動作の仕組みを解説しました。

今回は、前回の知識を使って、実際にステッピングモーターを動かしてみたいと思います。

1ステッピングモータードライバー

普通のDCブラシモーターにモータードライバーがあるのと同じように、ステッピングモーターにも、「ステッピングモータードライバー」と呼ばれるモータードライバーがついています。この記事では、「SLA7070」というステッピングモータードライバーを使用しました。

SLA7070はこのような外見です。
f:id:pythonjacascript:20181104223134j:plain


前回の記事で、ステッピングモーターを回転させるには、内部の4つの電磁石のON/OFFを制御する必要があると書きました。それを行ってくれるのがこのステッピングモーターです。

つまり、ステッピングモータードライバーの主な役割は、「モーターを制御するクロック信号とCW/CCW信号の2つの入力から、ステッピングモーターの内部の4つの電磁石に流れる電流を制御する」ことです。

CW/CCW信号は、モーターが時計回りに回転するか、反時計回りに回転するか?、を指定します。
クロック信号は、モーターの回転角度と回転速度を指定します。1パルスが入力されるごとに、モーターは1ステップ角度だけ回転します。回転方向はCW/CCW信号によって決まります。


図にすると、このようになります。
f:id:pythonjacascript:20181104225409j:plain
(アプリケーションノートより引用。リンクは参考文献に記載。)

上の図でA相、A/相(↑の図の中ではAの上に横線が入っている)、B相、B/相(A/相と同じく、上の図では横線表記)のx、y軸の座標の値が、それぞれの相の出力となり、それぞれがモーターのコイルのA相、A/相、B相、B/相と接続します。
f:id:pythonjacascript:20181104231212j:plain



このステッピングモータードライバーにステッピングモーターをつなぎ、ドライバーの電源を入れ、信号を入力すると、ステッピングモーターが回りだします。
このステッピングモータードライバーには、ピンが23本ついています。
これらのピンは、それぞれ、違った役割を持っており、その中でも、重要な役割を持った
ピンをいくつかあげてみました。

それぞれのピン配置です。
f:id:pythonjacascript:20181104232155j:plain
(アプリケーションノートより。参考文献は一番下にまとめて表示しています。)


図にするとこんな感じです。


マイクロステップ設定

そして、今回使ったステッピングモータードライバーは、「マイクロステップ」に対応しているため、設定次第でステップ角度を更に小さくすることができます。

その設定方法は、この表のようになっています。

f:id:pythonjacascript:20181104231828j:plain
(アプリケーションノートより)
このように、M1~M3端子(7~9ピン)の電圧を変更することで、ステップ角度を調整することができます。



回路設計&製作

アプリケーションノートにある通りの回路を製作していきます。
f:id:pythonjacascript:20181104232002j:plain
抵抗値などはアプリケーションノートの値そのままです。

EAGLEを使って回路&パターン設計を行っています。
f:id:pythonjacascript:20181104232418j:plain:h250

f:id:pythonjacascript:20181104232712j:plain:h250
アプリケーションノートに「GNDのノイズに注意してください」とありました。注意してみました。

M1~M3の部分は、あとから動作モード(マイクロステップの章を参照)を変更するかもしれないため、4PのDIPスイッチを使用しています。

製作した基盤の表面です。
f:id:pythonjacascript:20181104233708j:plain:h250

裏面です。
f:id:pythonjacascript:20181104233715j:plain:h250


実行

実際にステッピングモーターを取り付けて実験してみました。
SLA7070に入力するクロックは、あのタイマーIC555でパルスを生成して、それをそのままぶち込んでおります。

f:id:pythonjacascript:20181104233148j:plain:h300


アプリケーションノート通りに製作したので、一発目から特に問題なく動きました。