ステッピングモーター:Arduinoとの統合

ステッピングモーター

電気モーターの需要はますます高まっており、その中でもおそらく直流で動作するモーターが際立っており、モビリティを提供するため、Arduinoのメーカーのプロジェクトで最も人気があります。 その中で、ハイライト ステッピングモーター 複数のアプリケーション、特にアクチュエータなどのロボット工学に使用されます。

電気自動車、小型自律ロボット、自動化のための産業用アプリケーション、反復運動装置など。 サーボモーターとステッピングモーターがこれらのアプリケーションに非常に適している理由は、 遅いまたは速い動きを実行しますが、とりわけ制御されます。 さらに、ドライブは、高精度で多くの停止と開始が必要なアプリケーション向けに連続しています。

電気モーターの種類

以内 電気モーター 次のタイプを強調表示できます。

  • DCまたはDCモーター: 名前が示すように、DCモーターはこのタイプの電流で動作します。 それらは、産業用アプリケーション、車両、エレベータ、コンベヤベルト、ファンなどに使用される最も強力で大きなもので、数mWの電力から数MWの範囲に及ぶ可能性があります。 その回転速度(RPM)と加えられるトルクは、送りに応じて調整できます。
  • ACまたはACモーター(非同期および巻線型ローター):それらは交流で動作し、このタイプの電流がDCの場合と同様に電磁石の磁気反発によって回転を生成するのに寄与する相のおかげで動作する非常に特殊なローターを使用します。 それらは非常に安価で、数kWに達します。 それらは回転速度で調整することができますが、調整要素はDCのものよりも高価です。 これらは、家電製品によく使用されます。
  • ステッピングモーター-ステッパーとも呼ばれ、DCと多くの点で似ていますが、スピン速度と出力が低くなっています。 ここで際立っているのは、軸の位置、つまり特定の位置に配置するための精度です。 それらの回転角と速度は多くの制御が可能であるため、フロッピードライブ、ハードドライブ(HDD)、ロボット、プロセスオートメーションなどで使用されていました。
  • サーボモーター:それはステッピングモーターの進化形であり、場合によっては7000RPMまでの小さな出力と速度で動作すると言えます。 このモーターには、ギア減速ボックスと制御回路が組み込まれています。 ステッパーと同じ位置決め精度を持ち、加えられるトルクに関して非常に安定しているため、一部のロボットや産業用アプリケーションに最適です。

ステッピングモーターとサーボモーター

ローターとステーター

このXNUMX種類の電子モーターはもうご存知ですが、何か言いたいことがあります。 ステッパーの詳細。 彼らが行うターンは継続的に行われるのではなく、小さなステップで行われるため、彼らの名前が付けられています。 回転子(回転する部分)は歯車の形をしており、固定子(回転しない部分)はインターリーブされた分極電磁石で構成されています。 このように、XNUMXつが「アクティブ化」されると、その側面のそれらはアクティブ化されず、ローターの歯がそれに向かって引き付けられ、それらが特徴付けられる正確な前進が可能になります。

drv8825
関連記事
DRV8825:ステッピングモーターのドライバー

に応じて ローターの歯、順番に多かれ少なかれ前進することが可能になります。 歯数が多い場合、ターンを完了するにはより多くのステップが必要ですが、ステップが短くなるため、より正確なモーターになります。 歯が少ない場合、ステップはそれほど正確ではなく、より急激なジャンプになります。 したがって、ステッピングモーターが回転を完了するために必要なステップは、角度ステップによって異なります。

それらのステップ 角度が標準化されています、非標準のピッチを持ついくつかのモーターを見つけることができますが。 角度は通常、1.8度、5.625度、7.5度、11.25度、18度、45度、90度です。 ステッピングモーターが360回転または45回転(8º)を完了するために必要なステップ数を計算するには、除算する必要があります。 たとえば、360ºステッピングモーターを使用している場合、45ステップ(8/XNUMX = XNUMX)になります。

バイアスをかけたスピン(位相)

これらのモーター内には、5本または6本のケーブルを備えたユニポーラ(最も一般的)、または4本のケーブルを備えたバイポーラがあります。 これによると、どちらかが実行されます 分極シーケンス コイルに電流を流す:

  • の分極 双極:
手順 ターミナル ターミナルB ターミナルC ターミナルD
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • のために 単極構造:
手順 コイルA コイルB コイルC コイルD
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

どちらの場合も操作は同じで、コイルを分極して、軸を配置する場所にローターを引き付けます。 お望みならば それをXNUMXつの位置に保ち、分極を維持する必要があります その位置と出来上がりのために。 そして、それを前進させたい場合は、次の磁石を分極すると、次のステップに進みます。

を使用する場合 サーボモーター、あなたはそれが基本的にステッピングモーターであることをすでに知っているので、言われたことはすべて彼らのためにも機能します。 これらの減速機を含む唯一のものは、8回転あたりより多くのステップを取得し、したがってはるかに高い精度を実現します。 たとえば、1ターンあたり64ステップのモーターを見つけることができます。これは、64:512ギアボックスがある場合、0.7つのステップの各ステップがXNUMXの小さなステップに分割され、XNUMXターンあたり最大XNUMXステップになることを意味します。 つまり、各ステップは約XNUMXºになります。

1298n
関連記事
L298N:Arduinoのモーターを制御するモジュール

また、いくつかを使用する必要があることを追加します コントローラ たとえば、Hブリッジを使用して、偏光や速度などを制御します。 一部のモデルは、L293、ULN2003、ULQ2003などです。

ドンデcomprar

あなた さまざまなオンラインサイトで購入する または専門の電気店で。 また、初心者の方は、必要なものがすべて含まれているキットや、プレートも使用できます。 Arduino UNO プロジェクトの実験と作成を開始するためのマニュアル。 これらのキットには、モーター自体、コントローラー、ボード、ブレッドボードなど、必要なものがすべて含まれています。

Arduinoを使用したステッピングモーターの例

ステッピングモーターとコントローラーを備えたArduino

最後に、 Arduinoの実用例、ULN2003コントローラーと28BYJ-48ステッピングモーターを使用。 非常に簡単ですが、いくつかのテストを開始してどのように動作するかを確認できるように、それがどのように機能するかを理解し始めるだけで十分です...

に見られるように 配線図、モーターコイルA(IN1)、B(IN2)、C(IN3)、およびD(IN4)は、Arduinoボードの接続8、9、10、および11にそれぞれ割り当てられています。 一方、ドライバーまたはコントローラーボードは、5〜12Vピン(ArduinoのGNDおよび5V)に適切な電圧を供給して、このドライバーを備えた白いプラスチックコネクタに接続されたモーターに給電する必要があります。またはコントローラー。

この 28BYJ-48エンジン 1コイルのユニポーラ式ステッピングモーターです。 したがって、それがどのように機能するかを理解するために、次の手順で、ArduinoボードからコイルにHIGH(0)またはLOW(XNUMX)の値を送信できます:

手順 コイルA コイルB コイルC コイルD
1 高い 高い LOW LOW
2 LOW 高い 高い LOW
3 LOW LOW 高い 高い
4 高い LOW LOW 高い

のように あなたの動きをプログラムするために必要なスケッチまたはコード、次のように使用します Arduino IDE (それを変更し、動きがどのように変更されるかをテストするために実験します):

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}


コメントを最初に

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。