認可されたオンライン小売業者:
この記事は、ステッピングモータに慣れ親しみ、その後、Arduinoにその動作をプログラムすることを目的として書かれています。Arduinはプロトタイピングプログラムで、ホビーユーザーや学生レベルのユーザーが、使いやすくモジュール化されたコンピュータコードを使用して、より高度な回路やマイクロチップの操作を実行できるようにします。コードは簡単ですが、コンピュータコードやコンピュータコードで制御できるデバイスに慣れていない人には、まだ難しいかもしれません。
ステッピングモーターは、DCモーターと同様に、静止した電気磁石によって推進される回転永久磁石を備えていますが、その動きは、回転磁石の回転を中心としたいくつかのステップに分割されています。ステッピングモーターは、回転磁石の歯と、固定磁石の歯とが一直線に並ぶ構造になっています。特定の磁石、あるいは特定の磁石の列に電圧を供給すると、モーターは回転し、あるいはその位置までステップして保持されます。
ステッピングモーターは、通常のDCモーターのように回転させることもできますが、サーボモーターのようにある位置で停止させることもできます。そのため、さまざまな使い方ができます。ステッピングモーターは、ディスクドライブ、プリンター、FAX、スロットマシン、時計、インテリジェント照明、自動車のメーターなどに使われています。
ステッピングモーターは、一連の電磁コイルによって制御されるモーターです。センターシャフトには一連の磁石が取り付けられており、シャフトを囲むコイルは交互に電流を与えたり与えなかったりして磁場を作り、シャフト上の磁石を反発させたり引き付けたりして、モーターを回転させる。
この設計は、モータの非常に貴重な制御を可能にします,ステッピングモータには、ユニポーラステッパー とバイポーラステッパー 2つの基本タイプがあります。
このレッスンでは、ユニポーラステッピングモータ28-BYJ48について説明します。
ユニポーラステッピングモータ
ユニポーラステッピングモーターは、5本または6本のワイヤーと4つのコイル(実際には、各コイルの中心接続で分割された2つのコイル)を備えています。コイルの中心接続部は結ばれており、電源接続として使用されます。電源は常にこの1極に入るので、ユニポーラステッパーと呼ばれています。28-BYJ48モーターのデータシートはこちらで入手できます。
ユニポーラステッパーをArduinに接続する最も簡単な方法は、ULN2003Aトランジスタアレイチップ用のブレイクアウトを使用することです。ULN2003Aには7つのダーリントントランジスタドライバが含まれており、7つのTIP120トランジスタが1つのパッケージに収められているようなものです。ULN2003Aは、1チャンネルあたり最大500mAを流すことができ、オン時の内部電圧降下は1V程度です。ステッパーを制御するには、特定の順序で各コイルに電圧を印加します。
ULN2003Aを使用してユニポーラステッピングモータを4つのコントローラピンに接続する方法と、4つのTIP120を使用して接続する方法を示す回路図を以下に示します。
ULN2003のデータシートはこちらです。
ステッピングモータードライバー基板とOsoyooベーシック基板との配線について:
Stepper Motor Driver | Osoyoo basic |
IN1 | 8 |
IN2 | 9 |
IN3 | 10 |
IN4 | 11 |
GND | GND |
VCC | 5V |
ご注意: ステッピングモーターの電源は、少なくとも5V-500mAの外部電源から供給するのがよいでしょう。
上記の操作が完了したら、USBケーブルでボードとコンピュータを接続します。緑色の電源LED(PWRと表示)が点灯しているはずです。
以下のコード例をプログラムにコピーしてください。
#define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 int Steps = 0; boolean Direction = true;// gre unsigned long last_time; unsigned long currentMillis ; int steps_left=4095; long time; void setup() { Serial.begin(115200); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); // delay(1000); } void loop() { while(steps_left>0){ currentMillis = micros(); if(currentMillis-last_time>=1000){ stepper(1); time=time+micros()-last_time; last_time=micros(); steps_left--; } } Serial.println(time); Serial.println("Wait...!"); delay(2000); Direction=!Direction; steps_left=4095; } void stepper(int xw){ for (int x=0;x<xw;x++){ switch(Steps){ case 0: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break; case 1: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH); break; case 2: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break; case 3: digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break; case 4: digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 5: digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 6: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 7: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break; default: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; } SetDirection(); } } void SetDirection(){ if(Direction==1){ Steps++; } if(Direction==0){ Steps--; } if(Steps>7){ Steps=0; } if(Steps<0){ Steps=7; } }
Arduino IDEを開き、ボードタイプ、ポートタイプに対応するものを選択します。
このスケッチをコンパイルしたら、環境内の「Upload」ボタンをクリックするだけです。数秒待つと、ボードのRXとTXのLEDが点滅しているのが見えるはずです。アップロードが成功すると、ステータスバーに “Done uploading. “というメッセージが表示されます。
アップロードが終了して数秒後、モーターがシャフトを時計回りに1回転、反時計回りに1回転するのが確認できるはずです。
DownLoad Url osoyoo.com