電子工作・プログラミングノウハウを分かりやすく解説!見逃し厳禁!せでぃあのYouTube

Arduinoでステッピングモーターを制御!Stepperライブラリ・専用ブロックがあれば誰でも簡単に制御できます【ビジュアルプログラミングLESSON24】

Arduinoでステッピングモーターを制御!Stepperライブラリ・専用ブロックがあれば誰でも簡単に制御できます【ビジュアルプログラミングLESSON24】
  • URLをコピーしました!

この記事内には、プロモーションが含まれます。

こんにちは、せでぃあ(@cediablog)です。

今回のArduinoプログラミングLESSON24では、「ステッピングモーターの回転制御」を紹介します。

ステッピングモーター制御のための配線が完成した写真。
今回のLESSON24の配線完成写真

本記事ではELEGOOスーパースターターキットに含まれるパーツを使って、ステッピングモーターを誰でも簡単に制御できる方法を紹介します。

本記事は、プログラミングと電子パーツの知識が習得できるプログラミング初心者も安心して取り組めるテーマとなっています。

文字コードプログラミングが苦手な方も安心してプログラミングができるように、文字列を使わなビジュアルプログラミング方法も紹介しています。

せでぃあ

ビジュアルプログラミングの作り方は、Youtube動画でも解説していますので、ぜひチャンネル登録していただけますと幸いです。

本記事では、スクラッチベースのビジュアルプログラミングツールmBlockとArduinoIDEプログラムどちらのプログラミング方法も紹介しています。

本記事ではmBlockのアップロードモード「オン」でのプログラム例を紹介しています。

無料のブロックプログラミングツールmBlockのインストール方法については、こちらの記事を参照してください。

この記事を読んでわかること
  • ステッピングモーターの仕組みと動かし方
  • Arduino IDEでのプログラミング方法
  • mBlockを使ったビジュアルプログラミング方法
この記事を書いた人
せでぃあ

せでぃあはこんな人物です

✅プライム企業に勤める電気・機械設計エンジニア

✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作

✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞

✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中

✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中

目次

ステッピングモーターの仕組みと動かし方

ステッピングモーター(28BYJ-48)とモータードライバー(ULN2003A)

今回Arduinoキットに含まれる、ステッピングモーターとモータードライバーを使用します。

今回使用する機器と型式

これらの機器の仕組みや、ステッピングモーター回転制御回路の作り方について解説します。

ステッピングモーターとドライバーだけの購入も可能です。

ステッピングモーターの解説

ステッピングモーター(28BYJ-48)
ステッピングモーターの外観と内部結線図

ステッピングモーターとは、指定したステップ数だけ回転させられるモーターです。

モーター・制御励磁方式ごとに1STEPあたりの角度が決まっていて、その角度の倍数で回転角度を制御することができます。

ステッピングモーターは以下のような特徴があります。

ステッピングモーターの特徴
  • 高精度位置(回転角度)決めが可能。
  • 高トルクが得られる。
  • 回転速度を一定に保つことが可能。
  • 静止状態でもトルクを維持できる。

ステッピングモーターは内部のコイルに電流を流すことで回転させる仕組みで、流巻き線の電流を1方向に流す「ユニポーラ型」と、巻き線の電流を双方向に流す「バイポーラ型」が存在します。

今回使用するステッピングモーター(28BYJ-48)は、ユニポーラ型となります。

ステッピングモーター「28BYJ-48」のSPEC

  • 相数:4相
  • 定格電圧:5V
  • ギア比:64:1
  • ステップ角:5.265°÷64=0.087890625°(1-2相励磁方式)
    ※2相励磁方式の場合のステップ角は0.17578125°
  • 1回転のSTEP数:4096STEP(1-2相励磁方式)
    ※2相励磁方式の場合は:2048STEP
  • 周波数:100Hz
  • 結線:5線式

今回プログラムで使用するStepperライブラリやStepperブロックを使うことで、2相励磁方式でのステッピングモーター制御となります。

これまでDCモーターやサーボモーターも扱ってきましたが、それぞれの特徴をざっくり下記します。

各モーターの特性比較

  • DCモーター:回転速度や回転方向の制御が可能。
  • サーボモーター:目標角度(基本0~180°)への回転角度制御が可能。
  • ステッピングモーター:回転角度量制御が可能。

サーボモーターはどの角度位置まで回転させるかという「絶対角度制御」なのに対し、ステッピングモーターは現状からどれくらいの角度回転させるかという「相対角度制御」になります。

ステッピングモーターの回転方法

ステッピングモーター(28BYJ-48)の内部配線図
ステッピングモーターの回路図

ステッピングモーターは、内部にある4つのコイルに対して順番に電流を与えることで回転させることができます。

1~4番の配線が各コイルへの配線で、5番が共通線(+5V)となります。

励磁方式(電流の与え方)は3種類あります。

励磁方式の種類と特徴

  • 1相励磁方式:1相ずつ電流を与える方式で制御が簡単だがトルクが弱い。
  • 2相励磁方式:同時に2相電流を与える方式で高トルク。
  • 1-2相励磁方式:1相励磁と2相励磁を交互に繰り返す方式で、細かい角度制御が可能。

この後に示すSTEP順にコイルを励磁することでモーター回転させるのですが、回転方向についてはSTEP1→2→3→4の順にコイルを励磁すると反時計回り(左回り)、STEP4→3→2→1の順に励磁すると時計回り(右回り)させることができます。

1相励磁方式

1相励磁方式のSTEP説明図
1相励磁方式のSTEP説明図

1つのコイルに電流を流し励磁させ、励磁させるコイルを順番に切り替えることで軸を回転させます。

2相励磁方式

2相励磁方式のSTEP説明図
2相励磁方式のSTEP説明図

コイル2つずつ電流を流して励磁させる方式です。

2つ同時に励磁させるのでトルクが高くなります。

今回プログラムではStepperライブラリやStepperブロックを使っており、これらを使うと2相励磁方式での制御となります。

せでぃあ

本記事で扱うプログラムは2相励磁方式での制御になります。

1-2相励磁方式

1-2相励磁方式のSTEP説明図
1-2相励磁方式のSTEP説明図

1相励磁と2相励磁を交互に繰り返す方式で、STEP数が8STEPと倍のSTEP数で制御します。

その分1STEPあたりの動作角度が半分になり、制御できる角度が細かくなります。

モータードライバー(UNL2003A)の解説

ステッピングモーターはコイルを励磁させて回転駆動させるため、大きな電流が必要となります。

Arduinoの出力能力では不足するため、モータードライバーを使って必要な電流値を作り出してステッピングモーターを制御します。

モータードライバー(ULN2003A)
モータードライバー(ULN2003A)の解説

モータードライバ「ULN2003A」のSPEC

  • 定格電流:500mA

モータードライバーには、ステッピングモーターから出ているコネクタを差し込む口があるためコネクタ挿入することでステッピングモーターと接続することができます。

ステッピングモーター制御動作の解説

今回紹介する「ステッピングモーターの回転制御動作」について説明します。

動作の説明

  • ステッピングモーターが反時計回りに90°回転する。
  • ステッピングモーターが時計回りに90°回転する。
  • ステッピングモーターが反時計回りに180°回転する。
  • ステッピングモーターが時計回りに180°回転する。
動作説明とビジュアルプログラムの作り方解説動画
動画での解説内容
  • ステッピングモーターの仕組みと動作原理について
  • ステッピングモーターの回転制御動作
  • mBlockを使ったプログラミング方法

まずは動画を見て、今回のLESSONで実行させたい動作内容を確認してください。

また、mBlockを使ったブロックプログラミングや動作確認方法についても解説しています。

せでぃあ

ビジュアルプログラムの作り方も動画で解説しています。

ステッピングモーター制御動作に必要な準備作業

ステッピングモーターの回転制御を行うまでに必要な作業を解説します。

今回は文字列を使ったプログラム形式と、文字列を使わないビジュアルプログラミング形式の両方について説明します。

あなたの作りたいプロブラム形式に対応した手順に応じて、対応してください。

プログラム形式に応じた開発環境

  • 文字列による命令語形式 ⇒ ArduinoIDE
  • スクラッチベースのビジュアル形式 ⇒ mBlock
せでぃあ

文字コードプログラミングが苦手な方は、ビジュアルプログラミング形式をチョイスしてください。

STEP
必要なものを準備

プログラミングするために、パソコンが必要です。

電子部品等の必要な機器については、このあと説明します。

STEP
Arduinoを使うためのセットアップ(Arduino IDEプログラミング時のみ)

パソコンに統合開発ソフトウェア「ArduinoIDE」のインストールを行います。

Arduinoのセットアップ方法については、以下の記事にて詳しく説明しています。

Arduino IDEでの言語プログラミングも勉強したい方は、プログラミングの流れを理解しておいてください。

以下の記事にて、プログラミングから動作確認までの流れを詳しく説明しています。

mBlockでプログラミングする場合は、ArduinoIDEのインストールは不要です。

STEP
mBlockでプログラミングするためのセットアップ(mBlockプログラミング時のみ)

パソコンにスクラッチベースのビジュアルプログラミングツール「mBlock」のインストールを行います。

以下の記事にて詳しく説明しています。

ArduinoIDEでプログラミングする場合は、mBlockのインストールは不要です。

STEP
電気配線

電子部品とジャンパーワイヤの差し込みだけで配線が可能です。

STEP
Arduino IDEプログラミング

専用開発ソフトウェア「Arduino IDE」を使います。

私が作成したプログラムをコピペして使ってください。

Arduino IDEプログラミングの基本操作については、こちらの記事にて詳しく説明しています。

mBlockでプログラミングする場合は、ArduinoIDEプログラミングは不要です。

STEP
mBlockプログラミング

スクラッチベースのビジュアルプログラミングツールmBlockを使ってプログラムを作成します

プログラム内容については、後述するプログラミング例を参考にしてください。

ArduinoIDEでプログラミングする場合は、mBlockプログラミングは不要です。

STEP
動作確認

プログラムが完成したら動作確認を行います。

動作確認チェックリスト
  • ステッピングモーターが反時計回りに90°回転するか?
  • ステッピングモーターが時計回りに90°回転するか?
  • ステッピングモーターが反時計回りに180°回転するか?
  • ステッピングモーターが時計回りに180°回転するか?

ステッピングモーターの回転制御回路で使うもの

今回のステッピングモーター回転制御に使用する機器を紹介します。

かなりシンプルな配線になるので、配線作業は難しくないと思います。

ステッピングモーター回転制御で使う機器説明写真
配線が完了しプログラム転送できる状態写真
準備するもの
  1. パソコン
  2. Arduino本体【キット】
  3. USBケーブル【キット】
  4. ブレッドボード【キット】
  5. モータードライバ【キット】
  6. ステッピングモーター【キット】
  7. 電源モジュール【キット】
  8. スナップケーブル【キット】
  9. 9V電池【キット】
  10. ジャンパー線(オスーメス)×6本【キット】
  11. ジャンパー線(オスーオス)×1本【キット】

今回はELEGOO社のスーパースターターキットに含まれる部品で作ることができますが、Arduino裏面のショート対策としてクリアケースも併せて準備することをおすすめします。

【おすすめ】コスパ最強のArduinoキットの中間グレードです!

パソコン

プログラムを作成するために必要です。

プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。

パソコンのOSはWindows、Macどちらでも対応可能です。

Arduino本体【キット】

Arduino本体
Arduino本体

基本的なエディション「Arduino Uno」の互換機である、ELEGOO社のUNO R3を使用しています。

Arduino本体裏面のショート対策に、別売りのクリアケースの購入をおすすめしています。

各ソケットの役割など、Arduino本体の機能について以下の記事にて詳しく説明しています。

USBケーブル【キット】

必要なUSBケーブルの説明写真
USBケーブル

パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。

ブレッドボード【キット】

ブレッドボードの機能説明図
ブレッドボードの機能説明図

たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。

説明図は30列のショート版ですが、スーパースターターキットに含まれる63列タイプでも機能は同じです。

ブレッドボードだけの購入も可能です。

ステッピングモーター(28BYJ-48)【キット】

ステッピングモーター
ステッピングモーター

今回使用する「28BYJ-48」は、2相ユニポーラ型のステッピングモーターとなります。

ステッピングモーターは、電気信号を与えることで一定の角度ずつ動いて回転するモーターです。

ステッピングモータードライバー(ULN2003ドライバボード)【キット】

ステッピングモータードライバー(ULN2003ドライバボード)
ステッピングモータードライバー(ULN2003ドライバボード)

ステッピングモーターを動かすために必要なドライバボードです。

ステッピングモーターの駆動に必要な電力を作り出して、制御することができます。

電源モジュール【キット】

電源モジュール
電源モジュール

ArduinoUnoのデジタル入出力ピンから供給できる電流は40mAとなっており、それほど大きくはありません。

モーター駆動時にArduino基板回路を破損しないようにするため、今回のような外部電源モジュール(最大出力700mA)を接続して駆動させる必要があります。

モータードライバの最大定格電流は500mAであり、使用する外部電源モジュールは十分なSPECを有しています。

電源モジュールについては、こちらの記事にて詳しく説明しています。

DC9V電池、スナップケーブル【キット】

9Vバッテリーとスナップケーブル
DC9V電池とスナップケーブル

9V電池とDCジャックがついたスナップケーブルです。

電源モジュールに接続します。

今回キット付属の電池を使いきってしまったので、Amazonで購入した9V電池を使用しています。

ジャンパー線(オスーメス)【キット】

ジャンパー線(オス-メス)
ジャンパー線(オス-メス)

オス-メスジャンパー線を6本使用します。

ステッピングモータードライバーとArduinoのデジタル入出力ピンやブレッドボードと接続させるために使用します。

ジャンパー線(オスーオス)【キット】

キットに同梱されているジャンパー線(オスーオス)の説明
ジャンパー線

ジャンパー線を1本使用します。

Arduino本体とブレッドボードの接続に使います。

スーパースターターキットに含まれる機器に関しては、以下の記事にて詳しく紹介しています。

ステッピングモーター制御回路の配線方法

ここからは、各機器間の配線方法について解説します。

ステッピングモーター制御のための配線が完成した写真。
配線完了時の状態写真
ステッピングモーター制御回路の配線説明図
配線説明図(fritzingを用いて作成)

上図が配線説明図となりますので、これと同じ配線をすれば完成します。

ステッピングモーターからは5本のリード線が出ており、コネクタをモータードライバーに差し込んでください。

機器が故障するおそれがあるので、接続するプラスマイナス極性には十分注意して配線してください。

せでぃあ

モータードライバーの電源ピンにはプラスマイナスの極性がありますので、間違えないように注意してください。

Arduino入出力ピンとモータードライバーの接続先

  • 8番ピン:IN1に接続
  • 9番ピン:IN2に接続
  • 10番ピン:IN3に接続
  • 11番ピン:IN4に接続

機器故障させないためにも、「通電OFF」状態にて配線を行ってください。

プログラムの作り方とプログラム解説

本記事では、以下に示す「Arduino IDEプログラミング」と「mBlockプログラミング」の2通りのプログラミング方法について解説しています。

いずれか1つのプログラミング方法を用いることで、本LESSONの動作を行うことが可能です。

ArduinoIDE:文字列による命令語形式
mBlock:スクラッチベースのビジュアル形式

文字列を使わないmBlockの方が、直感的で分かりやすくプログラミング初心者の方におすすめのプログラミング方法になります。

mBlockを使ってプログラミングをする方は、mBlockの説明まで読み飛ばしてください。

せでぃあ

両方のプログラミング方法にチャレンジするのも楽しいですよ!

Stepperライブラリのインストール

今回紹介するプログラムでは、簡単にステッピングモーターを制御できる「Stepperライブラリ」を使用します。

このStepperライブラリは個別にインストールする必要があります。

せでぃあ

Stepperライブラリを使用すると、2相励磁(2048ステップで1回転)方式の制御プログラムが簡単に作れます。

mBlockでプログラミングをする場合は、本ライブラリインストール作業は不要です。

STEP
ArduinoIDEを開いて、ライブラリを管理をクリックする。
Arduino IDEを開き、スケッチ⇒ライブラリをインクルード⇒ライブラリを管理をクリックする。

Arduino IDEを開き、スケッチ⇒ライブラリをインクルード⇒ライブラリを管理をクリックする。

STEP
Stepperライブラリを検索する
検索窓に「stepper」と入力して、Stepperライブラリを検索します。

検索窓に「stepper」と入力して、Stepperライブラリを検索します。

ライブラリが検索できたら、インストールボタンをクリックしてライブラリをインストールします。

STEP
インストールが完了したことを確認する
ライブラリのインストールが完了した旨の表示がされたら、Stepperライブラリのインストールは完了です。

ライブラリのインストールが完了した旨の表示がされたら、Stepperライブラリのインストールは完了です。

Arduino IDEプログラミング

Arduino IDEとは統合開発ソフトウェアで、C言語のような文字列を用いたプログラミング方法です。

プログラミングするにあたり、ある程度の命令語を知っておく必要があります。

Arduino IDEのインストール方法については、以下の記事で詳しく説明しています。

日本語版のArduino公式リファレンスが記載されていて、関数を調べるときに重宝するのでオススメな一冊です!

せでぃあ

私もこの本を所有してプログラム作成時に活用しています!

プログラミング方法

Arduino IDEでのステッピングモーター制御プログラミング画面
Arduino IDEでのプログラミング画面

Arduino IDEを使って、文字列プログラミングを行います。

Arduino IDEを使ったプログラミング~動作確認方法については、以下の記事で詳細説明しています。

Arduino IDEプログラム

/* 作品名:LESSON24 */
/* 作成者:せでぃあ https://cediablog.com */
/* ステッピングモーター制御 */

// ライブラリのインクルード
#include <Stepper.h>  //ステッピングモーター制御ライブラリ

// ピン番号の定義
#define PIN1 8   // ドライバ「IN1」接続ピン
#define PIN2 9   // ドライバ「IN2」接続ピン
#define PIN3 10  // ドライバ「IN3」接続ピン
#define PIN4 11  // ドライバ「IN4」接続ピン

// ステッピングモーター軸が1回転するのに必要なステップ数
#define STEP 2048

//Stepper型のオブジェクトを作成
Stepper stepper1(STEP, PIN1, PIN3, PIN2, PIN4);

void setup() {
  //プログラム起動時1回だけ処理される回路

  //入出力ピンの割り当て
  pinMode(PIN1, OUTPUT);  //8番ソケットは出力として使用
  pinMode(PIN2, OUTPUT);  //9番ソケットは出力として使用
  pinMode(PIN3, OUTPUT);  //10番ソケットは出力として使用
  pinMode(PIN4, OUTPUT);  //11番ソケットは出力として使用

  //ステッピングモーターの回転速度を設定(rpm)
  stepper1.setSpeed(10);
}

void loop() {
  //プログラム起動後ループ処理される回路

  //STEP1:反時計方向に180°回転
  stepper1.step(512);
  delay(1000);  //1.0秒ウェイト

  //STEP2:時計方向に180°回転
  stepper1.step(-512);
  delay(1000);  //1.0秒ウェイト

  //STEP3:反時計方向に180°回転
  stepper1.step(1024);
  delay(1000);  //1.0秒ウェイト

  //STEP4:時計方向に180°回転
  stepper1.step(-1024);
  delay(1000);  //1.0秒ウェイト
}

上記が2相励磁方式でのステッピングモーター制御プログラムになります。

Arduino IDEのプログラム画面にコピーアンドペーストすることで、動作確認まで進めることができます。

各プログラム列の右側にプログラム内容をコメント記入してありますので参考にしてください。

せでぃあ

Stepperライブラリを用いたステッピングモーター制御は2相励磁方式になるため、1回転あたり2048STEPになることに注意してください。

命令語の解説

今回のプログラムで使用した命令文について、解説します。

#define 定数名 値

プログラム中の定数に対して名前を付けることができます。

#defineで定義された定数は、コンパイル時に値に置き換えられます。

#define文の最後にセミコロン「;」は不要です。

pinMode(入出力番号,INPUTまたはOUTPUT)

指定したデジタル入出力ソケット番号の機能を指示します。

入力として使用する場合は「INPUT」、出力の場合は「OUTPUT」を指定します。

delay(時間)

()内で指定した時間(単位はmsec)だけ、プログラム実行を待たせます。

Stepperライブラリの説明

ステッピングモーターを制御するために、「Stepperライブラリ」を使用します。

このライブラリを使うことで、モータードライバーへのSTEP出力切り替えを自動で行ってくれます。

2相励磁方式でのステッピングモーター制御になります。

Stepperライブラリの読み出し

プログラム冒頭の宣言部にてStepperライブラリを読み出します。

#include <Stepper.h> 

Stepperオブジェクトの作成

ステッピングモーターを制御するためのオブジェクトを作成します。

モータードライバー「IN1~4」と接続するArduinoの入力ピン番号を指定します。

Stepper オブジェクト名(STEP , PIN1 , PIN3 , PIN2 , PIN4)

STEP=モーター軸1回転あたりのSTEP数。
2相励磁方式の場合は1STEPあたりの回転角度が「5.625÷32=0.17578125°」のため、360°あたりのSTEP数は360÷0.17578125=2048STEPとなります。

PINとドライバーのIN対照表

PIN1(8番ピン):IN1
PIN2(9番ピン):IN2
PIN3(10番ピン):IN3
PIN4(11番ピン):IN4

せでぃあ

PIN1、PIN3、PIN2、PIN4と記述順が特殊な点に注意です。

ステッピングモーターの回転速度を指定する

ステッピングモーターの回転速度を設定します。

Stepperオブジェクト名.setSpeed(速度);

速度はrpm=1分間あたりの回転数を指定します。

ステッピングモーターを回転させる

ステッピングモーターを指定したSTEP数だけ回転させます。

Stepperオブジェクト名.step(STEP数);

2048STEPで360°ですので、90度=512STEPになります。
+指示は反時計回り、-指示は時計回りになります。

プログラミング初心者の方に、おすすめなArduinoの参考書を紹介しています!

mBlockプログラミング

スクラッチベースのビジュアルプログラミングツールmBlockプログラミングでのステッピングモーター制御プログラミング画面
mBlockを使ったプログラミング画面

ここからは、ビジュアルプログラミングツール「mBlock」を使ったプログラムの作り方を解説します。

mBlockを使ったプログラミング手順
  1. デバイスにArduino Uno R3を追加する
  2. 接続モードを「アップロードモードON」にする
  3. mBlockプログラムを作成する
  4. プログラムをArduino本体に転送する

これらの基本操作方法については、こちらの記事を参照してください。

プログラミング、動作確認方法については、本記事の説明動画でも紹介しています。

せでぃあ

ビジュアルプログラミングは直感的にプログラミングができるところが嬉しいですよね!

Stepperブロックの追加方法

拡張ブロックである「Stepperブロック」を追加することで、簡単にステッピングモーターを制御するプログラムが作れます。

Arduino IDEのStepperライブラリと同等の機能を持つブロック「2相励磁方式=4STEP制御・回転軸1回転あたり2048STEP」の制御動作が可能です。

追加が必要なStepperブロックと機能説明
追加が必要なStepperブロックと機能説明

今回は4相接続タイプですので、オブジェクト作成には上図一番上のブロックを使います。

STEP
拡張ボタンをクリック
mBlockを開いて、拡張ボタンをクリックします。

mBlockを開いて、拡張ボタンをクリックします。

STEP
検索窓に「stepper」と入力して検索し、ブロックを追加する。
検索窓に「stepper」と入力します。
上図に示すstepperを選択して「追加」をクリックします。

検索窓に「stepper」と入力して、拡張ブロックを検索します。

上図に示すstepperを選択して「追加」をクリックします。

STEP
Stepperブロックが追加される
Stepperブロックが追加されます。

Stepperブロックが追加され、プログラムに使用可能となります。

mBlockを使ったプログラム内容

今回は「アップロードモード オン」でのプログラム作成例を紹介しています。

プログラム開始条件が「Arduino Unoが起動したとき」になっている点に注意してください。

以下のプログラムが動作プログラムと解説になります。

mBlockによるステッピングモーター制御ブロックプログラム
mBlockによるステッピングモーター制御ビジュアルプログラム

プログラムのボリュームが少ないので、作りやすいと思います。

mBlockのArduino専用ブロックについては、こちらの記事にて詳しく説明しています。

Stepperブロックの解説

拡張ブロックとして追加したStepperブロックの機能について解説します。

Stepperブロックを使うことで、モータードライバーへのSTEP出力切り替えを自動で行ってくれます。

2相励磁方式でのステッピングモーター制御になります。

オブジェクト作成ブロック

Stepperのオブジェクト作成ブロック
Stepperのオブジェクト作成ブロック

オブジェクト作成ブロックで、ステッピングモーター1回転あたりのSTEP数や、回転速度、ドライバーへの接続ピン番号などを指定します。

  • オブジェクト番号:接続モーター別で番号を付けます。デフォルト値:1のままでOKです。
  • モーター軸1回転あたりのステップ数:2相励磁方式の場合は2048STEPです。
  • モーターの回転速度:1分当たりの回転数=rpmで指定します。
  • ドライバー接続ピン:「IN1」「IN3」「IN2」「IN4」の順にArduino入出力ピン番号を指定します。
    ※指定順が特殊なので注意してください。

2相励磁方式の場合は1STEPあたりの回転角度が「5.625÷32=0.17578125°」のため、360°あたりのSTEP数は360÷0.17578125=2048STEPとなります。

回転指示ブロック

Stepperのステッピングモーター回転指示ブロック
回転量(STEP数)指示ブロック

ステッピングモーターを指定したSTEP数分だけ回転させます。

2048STEPで360°ですので、90°=512STEP、180°=1024STEPになります。
+指示は反時計回り、-指示は時計回りになります。

動作確認方法

ステッピングモーター制御のための配線が完成した写真。
回転軸に目印となるものを取り付けると、軸の回転方向と回転量が分かりやすいです。
ステッピングモーター制御回路の配線説明図
配線状態説明図
動作確認チェックリスト
  • ステッピングモーターが反時計回りに90°回転するか?
  • ステッピングモーターが時計回りに90°回転するか?
  • ステッピングモーターが反時計回りに180°回転するか?
  • ステッピングモーターが時計回りに180°回転するか?

プログラム転送が完了したら①から順番に動作が始まります。

反時計回り=左周りに90°回転するところから動作を目視で確認してください。

④までの動作を完了すると、再び①から順に動作が継続します。

うまく動作ができない時のチェックポイント

  • 電源モジュールの電源スイッチがONになっているか?
    (電源モジュールのランプは点灯しているか?)
  • モータードライバーに接続した電源線の+-配線は合っているか?
  • プログラム記述に間違いがないか?
    (特に接続ピン番号の記載順)
せでぃあ

動作がうまくいかないときは、上記チェックポイントを参考に確認してみてください。

ステッピングモーターは専用ライブラリ・ブロックが有能!(まとめ)

この記事の内容をまとめると
  • ステッピングモーターは、指定したSTEP数回転させることができる。
  • Stepperライブラリやブロックを使うことで簡単にステッピングモーターを制御できる。
  • 上記ライブラリやブロックを使うと2相励磁方式での制御となる。

ステッピングモーターについて、なんとなく理解していただけましたでしょうか?

ステッピングモーターは今回使用したユニポーラ型以外にバイポーラ型というタイプもあり、突き詰めれば奥が深いモーターでもあります。

まずは細かいことを気にせず、Arduinoを使ったステッピングモーター回転制御を楽しんでください!

せでぃあ

ステッピングモーターは、「現在位置からの相対移動角度量=STEP数回転させられるモーター」と覚えていただけたらと思います!

最後まで読んでいただき、ありがとうございました。

DCモーターを使ったプログラム例を紹介しています。

サーボモーターを使ったプログラム例を紹介しています。

Arduinoスクラッチプログラミングのおすすめ参考書について詳しく説明しています。

子供の成長を育む!小学生のお子様にぴったりなプログラミング教室が見つかるように厳選しました!

\ プライベートブランド商品が充実! /

応援ありがとうございます(^^)/

Arduinoでステッピングモーターを制御!Stepperライブラリ・専用ブロックがあれば誰でも簡単に制御できます【ビジュアルプログラミングLESSON24】

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次