Arduino-stepper-motor

提供:Dev Guides
移動先:案内検索

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

ステッピングモーターまたはステップモーターは、ブラシレスの同期モーターで、1回転を複数のステップに分割します。 固定DC電圧が印加されると連続的に回転するブラシレスDCモーターとは異なり、ステップモーターは離散的なステップ角で回転します。

したがって、ステッピングモーターは、1回転あたり12、24、72、144、180、および200のステップで製造され、ステップごとに30、15、5、2.5、2、および1.8度のステッピング角が得られます。 ステッピングモーターは、フィードバックの有無にかかわらず制御できます。

RC飛行機のモーターを想像してください。 モーターはある方向または別の方向に非常に高速で回転します。 モーターに与えられる力の量で速度を変えることはできますが、特定の位置で停止するようにプロペラに伝えることはできません。

プリンタを想像してください。 モーターを含め、プリンター内部には多くの可動部品があります。 このようなモーターの1つは、紙送りとして機能し、インクが印刷されるときに紙を移動させるローラーを回転させます。 次のテキスト行または画像の次の行を印刷するには、このモーターが用紙を正確な距離だけ移動できる必要があります。

プリントヘッドを前後に動かすねじ付きロッドに取り付けられた別のモーターがあります。 繰り返しますが、そのねじ棒は、文字を次々に印刷するために正確な量だけ移動する必要があります。 これは、ステッピングモーターが便利な場所です。

ステッピングモーター

ステッピングモーターの仕組み

通常のDCモーターは一方向にのみ回転しますが、ステッパーモーターは正確な増分で回転できます。

ステッピングモーターは、必要に応じて正確な角度(またはステップ)で回転できます。 これにより、モーターを完全に制御できるため、モーターを正確な位置に移動してその位置を保持できます。 これは、モーター内のコイルに非常に短い時間だけ電力を供給することにより行われます。 欠点は、モーターを必要な位置に維持するために常にモーターに電力を供給しなければならないことです。

現時点で知っておく必要があるのは、ステッピングモーターを動かすために、一定数のステップをある方向または別の方向に動かし、その方向にステップする速度を伝えることです。 ステッピングモーターにはさまざまな種類があります。 ここで説明する方法は、このチュートリアルで言及されていない他のモーターとドライバーの使用方法を推測するために使用できます。 ただし、お使いのモデルに固有のモーターとドライバーのデータシートとガイドを参照することを常にお勧めします。

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

必要なコンポーネント

次のコンポーネントが必要になります-

  • 1×Arduino UNOボード
  • 以下の画像に示すように、1×小型バイポーラステッピングモーター
  • 1×LM298駆動IC

LM298駆動IC

手順

回路図に従って、以下の画像に示すように接続します。

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

スケッチ

コンピューターでArduino IDEソフトウェアを開きます。 Arduino言語でコーディングすると、回路が制御されます。 [新規]をクリックして、新しいスケッチファイルを開きます。

スケッチ

Arduinoコード

/*Stepper Motor Control*/

#include <Stepper.h>
const int stepsPerRevolution = 90;
//change this to fit the number of steps per revolution
//for your motor
//initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  //set the speed at 60 rpm:
   myStepper.setSpeed(5);
  //initialize the serial port:
   Serial.begin(9600);
}

void loop() {
  //step one revolution in one direction:
   Serial.println("clockwise");
   myStepper.step(stepsPerRevolution);
   delay(500);
  //step one revolution in the other direction:
   Serial.println("counterclockwise");
   myStepper.step(-stepsPerRevolution);
   delay(500);
}

注意すべきコード

このプログラムは、ユニポーラまたはバイポーラステッピングモーターを駆動します。 モーターはArduinoのデジタルピン8-11に取り付けられています。

結果

モーターは、一方向に1回転してから、反対方向に1回転します。