電気モーターの需要はますます高まっており、その中でもおそらく直流で動作するモーターが際立っており、モビリティを提供するため、Arduinoのメーカーのプロジェクトで最も人気があります。 その中で、ハイライト ステッピングモーター 複数のアプリケーション、特にアクチュエータなどのロボット工学に使用されます。
電気自動車、小型自律ロボット、自動化のための産業用アプリケーション、反復運動装置など。 サーボモーターとステッピングモーターがこれらのアプリケーションに非常に適している理由は、 遅いまたは速い動きを実行しますが、とりわけ制御されます。 さらに、ドライブは、高精度で多くの停止と開始が必要なアプリケーション向けに連続しています。
電気モーターの種類
以内 電気モーター 次のタイプを強調表示できます。
- DCまたはDCモーター: 名前が示すように、DCモーターはこのタイプの電流で動作します。 それらは、産業用アプリケーション、車両、エレベータ、コンベヤベルト、ファンなどに使用される最も強力で大きなもので、数mWの電力から数MWの範囲に及ぶ可能性があります。 その回転速度(RPM)と加えられるトルクは、送りに応じて調整できます。
- ACまたはACモーター(非同期および巻線型ローター):それらは交流で動作し、このタイプの電流がDCの場合と同様に電磁石の磁気反発によって回転を生成するのに寄与する相のおかげで動作する非常に特殊なローターを使用します。 それらは非常に安価で、数kWに達します。 それらは回転速度で調整することができますが、調整要素はDCのものよりも高価です。 これらは、家電製品によく使用されます。
- ステッピングモーター-ステッパーとも呼ばれ、DCと多くの点で似ていますが、スピン速度と出力が低くなっています。 ここで際立っているのは、軸の位置、つまり特定の位置に配置するための精度です。 それらの回転角と速度は多くの制御が可能であるため、フロッピードライブ、ハードドライブ(HDD)、ロボット、プロセスオートメーションなどで使用されていました。
- サーボモーター:それはステッピングモーターの進化形であり、場合によっては7000RPMまでの小さな出力と速度で動作すると言えます。 このモーターには、ギア減速ボックスと制御回路が組み込まれています。 ステッパーと同じ位置決め精度を持ち、加えられるトルクに関して非常に安定しているため、一部のロボットや産業用アプリケーションに最適です。
ステッピングモーターとサーボモーター
このXNUMX種類の電子モーターはもうご存知ですが、何か言いたいことがあります。 ステッパーの詳細。 彼らが行うターンは継続的に行われるのではなく、小さなステップで行われるため、彼らの名前が付けられています。 回転子(回転する部分)は歯車の形をしており、固定子(回転しない部分)はインターリーブされた分極電磁石で構成されています。 このように、XNUMXつが「アクティブ化」されると、その側面のそれらはアクティブ化されず、ローターの歯がそれに向かって引き付けられ、それらが特徴付けられる正確な前進が可能になります。
に応じて ローターの歯、順番に多かれ少なかれ前進することが可能になります。 歯数が多い場合、ターンを完了するにはより多くのステップが必要ですが、ステップが短くなるため、より正確なモーターになります。 歯が少ない場合、ステップはそれほど正確ではなく、より急激なジャンプになります。 したがって、ステッピングモーターが回転を完了するために必要なステップは、角度ステップによって異なります。
それらのステップ 角度が標準化されています、非標準のピッチを持ついくつかのモーターを見つけることができますが。 角度は通常、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ºになります。
また、いくつかを使用する必要があることを追加します コントローラ たとえば、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); } }