マイコン1つで複数モーターを操る、制御モジュール「A4988」を学ぶ:Arduinoで学ぶ基礎からのモーター制御(10)(4/4 ページ)
ステッピングモーターに制御用ドライバモジュールを組み合わせると、用途の幅がグッと広がります。今回は3Dプリンタなどで、バイポーラ型ステッピングモーターの制御モジュールとしてよく利用されている「A4988」の扱いを学びます。
次のリストはArduinoのプログラムです。
void setup() { pinMode(3,OUTPUT); pinMode(4,OUTPUT); } void loop() { digitalWrite(4,HIGH); for(int x = 0; x < 400; x++) { digitalWrite(3,HIGH); delay(2); digitalWrite(3,LOW); delay(2); } delay(1000); digitalWrite(4,LOW); for(int x = 0; x < 400; x++) { digitalWrite(3,HIGH); delay(2); digitalWrite(3,LOW); delay(2); } delay(1000); }
setup関数内でGPIOの3番ピンと4番ピンを出力に設定、3番ピンをSTEP、4番ピンをDIR制御用に使います。
loop関数内ではまず4番ピンをHIGHにします。これによりステッピングモーターの回転方向を決定します。次のforループで400回STEPに対してON/OFFを送ります。このときdelay関数でONを2ミリ秒、そのあとOFFを2ミリ秒の時間で波形を生成します。このdelayで設定する時間によりステッピングモーターの回転速度が決まります。
筆者が使っているステッピングモーターは1回のステップで1.8度回転しますので、軸が一回転するのに200ステップを要します。1ステップを送るのにONの2ミリ秒とOFFの2ミリ秒の計4ミリ秒必要ですので、1回転するのに4ミリ秒×200ステップとなり、0.8秒となります。RPM(1分間の回転数)に換算すると75RPMということになります。
Delayの時間を小さくすると回転数は増します。400回転ですからちょうど2回転します。ここで1秒間の時間を空けます。今度はDIRを0にしますので、先ほどとは逆回転となります。先ほどと同様に400回ステップを送ります。今度は逆に2回転します。そして1秒時、間を空けてこれらの動作を繰り返します。
次の図はこれらの実験中の写真です。
おわりに
今回はA4988というバイポーラ型ステッピングモーター用ドライバモジュールを使いました。1つのステッピングモーターあたりArduinoからの2本の信号線しか使いませんので、1つのArduinoで3〜4台のステッピングモーターを制御できそうですね。
実際にオープンソース系の3Dプリンタなどでは1つのArduinoと複数のA4988を組み合わせたシステムが多く存在します。次回はオープンソース系の3DプリンタやCNC制御ソフトを使って、ステッピングモーターを制御してみたいと思います。お楽しみに。(次回へ続く)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 定番IC「TA7291A」でバイポーラ型ステッピングモーターを駆動する
ステッピングモーターを制御する時、トランジスタで回路を組んでもよいのですが、制御用ICなどを用いる方が便利です。今回は定番IC「TA7291A」でバイポーラ型ステッピングモーターを制御します。 - バイポーラ型ステッピングモーターの制御
精密制御に欠かせないステッピングモーター。今回はバイポーラ型ステッピングモーターについて、その制御をマイコン(Arduino)から行います。 - ステッピングモーターの制御
前回までは“マブチモーター”に代表される「直流ブラシ付きモーター」を、マイコン(Arduino)で制御する方法を紹介してきました。今回からは「ステッピングモーター」の制御に取り組みます。 - PWMを使ったサーボモーターの制御
ラジコンカーのステアリングやロボットの関節などに用いられ、角度を指定して動かす機能を持つのが「サーボモーター」です。今回はArduinoからこのサーボモーターの制御をPWMを用いて行う手法を紹介します。 - PWMでマブチモーターを制御する
「マブチモーター」でもおなじみ「直流ブラシ付きモーター」は安価で入手性もよいモーターですが、マイコンからの制御を考えると一工夫必要になります。今回は「PWM」を使った回転制御を紹介します。