- ステッピングモーター:
- ステッピングモーターの1回転あたりのステップ数の計算:
- なぜステッピングモーター用のドライバーモジュールが必要なのですか?
- Arduinoステッピングモーター位置制御回路図と説明:
- Arduinoボードのコード:
- Arduinoでのステッピングモーターの動作:
ステッピングモーターは、エレクトロニクスの世界でますますその位置を占めています。通常の監視カメラから複雑なCNCマシン/ロボットまで、これらのステッピングモーターは正確な制御を提供するため、アクチュエーターとしてあらゆる場所で使用されています。ステッピングモーターはブラシレスの同期モーターで、完全な回転をいくつかのステップに完了します。このArduinoステッピングモーターチュートリアルでは、最も一般的に利用可能なステッピングモーター28-BYJ48と、ULN2003ステッピングモーターモジュールを使用してArduinoとインターフェースする方法について学習します。
ステッピングモーター:
この28-BYJ48ステッピングモーターを見てみましょう。
さて、通常のDCモーターとは異なり、これにはすべての派手な色の5本のワイヤーが出ていますが、なぜそうなのですか?これを理解するには、まずステッパーがどのように機能し、その専門性が何であるかを知る必要があります。まず第一に、ステッピングモーターは回転せず、ステップするため、ステップモーターとも呼ばれます。つまり、一度に1ステップだけ移動します。これらのモーターには一連のコイルがあり、モーターを回転させるには、これらのコイルに特定の方法で通電する必要があります。各コイルが通電されているとき、モーターはステップを取り、一連の通電によりモーターは連続したステップを踏むため、モーターが回転します。モーター内部にあるコイルを見て、これらのワイヤーがどこから来ているのかを正確に知ることができます。
ご覧のとおり、モーターにはユニポーラ5リードコイル配置があります。特定の順序で通電する必要がある4つのコイルがあります。赤いワイヤーには+ 5Vが供給され、残りの4本のワイヤーはそれぞれのコイルをトリガーするためにアースに接続されます。Arduinoのようなマイクロコントローラーを使用して、これらのコイルに特定の順序で通電し、モーターに必要なステップ数を実行させます。
では、なぜこのモーターは28-BYJ48と呼ばれるのですか?真剣に!!! 知りません。このモーターにそのように名前が付けられた技術的な理由はありません。多分私達はそれにもっと深く潜るべきです。下の写真のこのモーターのデータシートから得られた重要な技術データのいくつかを見てみましょう。
それは情報でいっぱいの頭ですが、効率的にプログラムできるように、使用しているステッパーのタイプを知るためにいくつかの重要なものを調べる必要があります。最初に、5Vで赤いワイヤーに通電するので、それが5Vステッピングモーターであることがわかります。そして、4つのコイルが入っているので、4相ステッピングモーターであることがわかります。これで、ギア比は1:64になります。つまり、外側に見えるシャフトは、内側のモーターが64回回転した場合にのみ、完全に1回転します。これは、モーターと出力シャフトの間に接続されているギアのため、これらのギアはトルクを増加させるのに役立ちます。
注意すべきもう1つの重要なデータは、ストライド角度:5.625°/ 64です。これは、8ステップシーケンスで動作する場合、モーターが各ステップで5.625度移動し、1回転を完了するのに64ステップ(5.625 * 64 = 360)かかることを意味します。ARM LPC2148、ATMega16マイクロコントローラー、MSP430を使用したステッピングモーターの動作について詳しく知ることができます。
ステッピングモーターの1回転あたりのステップ数の計算:
ステッピングモーターを効果的にプログラムできるのは、ステッピングモーターの1回転あたりのステップ数を計算する方法を知っておくことが重要です。
Arduinoでは、モーターを4ステップシーケンスで動作させるため、8ステップシーケンスでは5.625°(データシートに記載)であるため、ストライド角度は11.25°になります(5.625 * 2 = 11.25)。
1回転あたりのステップ数= 360 /ステップ角
ここで、360 / 11.25 = 1回転あたり32ステップ。
なぜステッピングモーター用のドライバーモジュールが必要なのですか?
ほとんどのステッピングモーターは、ドライバーモジュールの助けを借りてのみ動作します。これは、コントローラーモジュール(この場合はArduino)が、モーターが動作するのに十分な電流をI / Oピンから供給できないためです。そのため、ULN2003モジュールなどの外部モジュールをステッピングモータードライバーとして使用します。ドライバーモジュールには多くの種類があり、使用するモーターの種類によって定格が異なります。すべてのドライバモジュールの主な原理は、モーターが動作するのに十分な電流をソース/シンクすることです。
Arduinoステッピングモーター位置制御回路図と説明:
arduinoステッピングモーター制御プロジェクトの回路図を上に示します。28BYJ-48ステッピングモーターとULN2003ドライバーモジュールを使用しました。ステッピングモーターの4つのコイルに電力を供給するために、デジタルピン8、9、10、および11を使用しています。ドライバーモジュールは、Arduinoボードの5Vピンから電力を供給されます。
ただし、ステップモーターに負荷を接続する場合は、外部電源を使用してドライバーに電力を供給してください。デモ目的でモーターを使用しているだけなので、Arduinoボードの+ 5Vレールを使用しました。また、ArduinoのグラウンドをDiverモジュールのグラウンドに接続することを忘れないでください。
Arduinoボードのコード:
Arduinoでプログラミングを始める前に、プログラム内で実際に何が起こるべきかを理解しましょう。前に述べたように、4ステップのシーケンス方式を使用するため、1つの完全な回転を行うために実行する4つのステップがあります。
ステップ |
ピン通電 |
通電されたコイル |
ステップ1 |
8と9 |
AとB |
ステップ2 |
9と10 |
BとC |
ステップ3 |
10と11 |
CとD |
ステップ4 |
11と8 |
DとA |
ドライバモジュールには4つのLEDがあり、これを使用して、どのコイルがいつでも通電されているかを確認できます。通電のシーケンスを示すビデオは、このチュートリアルの最後にあります。
このチュートリアルでは、arduinoステッピングモーターコードを記述します。そのために、Arduinoのシリアルモニターを介してステッピングモーターが実行するステップ数を入力できるようにArduinoを プログラムします。完全なプログラムはチュートリアルの最後にあります。いくつかの重要な行を以下に説明します。
ステッピングモーターの1回転あたりのステップ数は32と計算されました。したがって、以下の行に示すように入力します
#defineステップ32
次に、ステッピングモーターを接続したピンを指定するインスタンスを作成する必要があります。
ステッパーステッパー(STEPS、8、10、9、11);
注:ピン番号は、意図的に8、10、9、11として乱されています。モーターが接続されているピンを変更しても、同じパターンに従う必要があります。
Arduinoステッピングライブラリを使用しているので、以下の行を使用してモーターの速度を設定できます。28-BYJ48ステッピングモーターの場合、速度は0〜200の範囲になります。
stepper.setSpeed(200);
ここで、モーターを1ステップ動かすために、次の行を使用できます。
stepper.step(val);
移動するステップ数は、変数「val」によって提供されます。32ステップとギア比として64があるので、1回転するために2048(32 * 64 = 2048)を移動する必要があります。
変数「val」の値は、ユーザーがシリアルモニターを使用して入力できます。
Arduinoでのステッピングモーターの動作:
接続が確立されると、ハードウェアは次の図のようになります。
次に、以下のプログラムをArduino UNOにアップロードし、シリアルモニターを開きます。前に説明したように、1回転するために2048ステップを実行する必要があるため、2048に入ると、モーターは2048ステップを実行して時計回りに1回転します。反時計回りに回転するには、「–」の負の符号を付けて数値を入力するだけです。したがって、-1024と入力すると、モーターは反時計回りの方向に半分回転します。1を入力すると、モーターが1ステップだけ実行されるように、任意の値を入力できます。
あなたがプロジェクトを理解し、それを構築することを楽しんだことを願っています。プロジェクトの完全な動作は、以下のビデオに示されています。疑問がある場合は、フォーラムの下のコメントセクションに投稿してください。