GR-ADZUKIでステッピングモーターを動かす/サーボでトルク不足ならステッピングモーターがおすすめ

スポンサーリンク

電子工作をしていて、サーボモーターを使って何か動くものを作ろうとしたけど、モーターのトルク(回す力)が足りず、うまくいかなかった、という経験をお持ちの方もいらっしゃるのではないでしょうか。

ステッピングモーターは、小型なものでもかなりトルクが大きいものがありますので、トルクがほしい場合の対策として役立ちます。

しかし、サーボモーターと違って単純につなげば動くかと言えばそうではなく、ステッピングモーター専用のドライバボードを利用するのが一般的です。

本記事では、がじぇるねGR-ADZUKIを使ってステッピングモーターを動かす方法を紹介します。
DCモーターとサーボモーターを動かし方はこちら

ハードの準備

以下を使用して動作確認を行いました。

ステッピングモーターの電源は、当初GR-ADZUKIボードの電源と別系統にしようかと思っていましたが、モーター1つであればサーボモーター用電源端子からの供給で駆動できたので、単一の電源構成にしました。

電池はリチウムイオンバッテリーを使いましたが、乾電池を使用したり、モバイルバッテリーを使ってUSB端子から供給することもできます。

リチウムイオンバッテリーは3.7Vですが、GR-ADZUKIボードの昇圧回路により、サーボモーター用の電源供給用端子からは5Vが出るようになっています。

以下が回路図です。

電池からの供給の場合、電源端子付近にあるスライドスイッチをVATT側に、USB端子から電源供給したりプログラムの書き換えをする場合はUSB側に倒す必要がありますのでご注意ください。

もう一方のスライドスイッチはSketch側に倒しておきます。

プログラムの作成

GR-ADZUKIのプログラムは、IDE for GRを使用してC言語で記述します。

#include <Stepper.h>

#define MOTOR_1   (12)   // blue
#define MOTOR_2   (13)   // pink
#define MOTOR_3   (11)   // yellow
#define MOTOR_4   (10)   // orange

#define MOTOR_STEPS (2048)

// ライブラリが想定している配線が異なるので2番、3番を入れ替える
Stepper myStepper(MOTOR_STEPS, MOTOR_1, MOTOR_3, MOTOR_2, MOTOR_4);

void setup() {
  myStepper.setSpeed(10);
}

void loop() {
  myStepper.step(512);
  myStepper.step(-512);
  stopMotor();
  delay(5000);
}

void stopMotor() {
  digitalWrite(MOTOR_1, LOW);
  digitalWrite(MOTOR_2, LOW);
  digitalWrite(MOTOR_3, LOW);
  digitalWrite(MOTOR_4, LOW);
}

setup()関数内で回転スピードを設定し、loop()関数内に動作を記述します。

「90度右回し」→「90度左回し」→「5秒待つ」を繰り返すプログラムとしました。

このページにあるのと同様にステッピングモーター28BYJ-48を使う場合は、MOTOR_2とMOTOR_3を入れ替えることでモーターを意図どおり動かすことができました。

プログラムを書いたら、メニューの「ファイル」から「名前をつけて保存」または「保存」で保存します。

動作確認

GR-ADZUKIボード上にある2つのスライドスイッチの状態が、SketchおよびUSBになっていることを確認し、USBケーブルでパソコンとGR-ADZUKIをつなぎます。

IDE for GRの右矢印のボタン

を押すとコンパイル、書き込み、リセットが実行されます。

問題なければ、今度はGR-ADZUKIのスイッチをUSB→BATTに切り替え、バッテリーをつなぎます。下の動画のように動作すれば成功です。

まとめ

がじぇるねGR-ADZUKIを使ってステッピングモーターを動かす方法を紹介しました。

サーボモーターよりトルクがありますので、回転力が必要な工作をする際に役立つと思います。

GR-ADZUKIのサーボモーター用電源出力端子は、電流能力が高いので3.7Vのリチウムイオンバッテリー1つから、GR-ADZUKIに搭載された昇圧回路により出力される5Vをドライバボードに供給することで、電源を分離することなくシンプルな回路構成で実現できました。

参考ページ

タイトルとURLをコピーしました