バイポーラステッピングモーターライブラリ
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
以前、ユニポーラタイプのステッピングモーター用のArduinoライブラリを提供しました。ユニポーラタイプのステッピングモーターの速度、方向、回転数、モーター角度などのすべてのパラメーターを完全に制御します。しかし、それはユニポーラタイプのステッピングモーターだけのためでした。ご存知のように、ステッピングモーターはバイポーラタイプでもかまいません。しかし、このライブラリはバイポーラタイプのステッピングモーターを制御することはできません。そこで、バイポーラ型ステッピングモーターを制御するための別のarduinoライブラリを開発することにしました
そこで、ここでは、すべてのバイポーラタイプのステッピングモーター用のArduinoのバイポーラステッピングモーターライブラリを紹介します。ライブラリには、要件に応じてモーターを回転および制御するために使用できる9つの異なる機能があります。ライブラリは、 産業用モーションコントロールに従って設計されています。 要件。このライブラリの機能の一部を次に示します
1.バイポーラステッピングモーターを制御します
2.モーターの回転方向を制御します
3. 1、2、3、4、.....のようにモーターの回転数を正確に制御します。
4. 95%の精度でRPMでモーター速度を正確に制御します
5.モーターを正確に回転させて0〜360°の角度を80〜100%の精度で希望します
6.すべてのarduinoボードと互換性があります
<図>すべてのライブラリ関数の簡単な説明をここに示します。その後、このライブラリを使用してモーターを制御する方法を説明するいくつかの例を示します。これらの例のデモンストレーションを示す1つのビデオも提供されています。最後に、L293Dチップを使用する回路が提案されています。これは、DCモーターおよび双極ステッピングモーターのHブリッジドライバーとして広く使用されています。
このライブラリをarduinoスケッチで使用するには、 bi_polar_Stepper をコピーするだけです。 C:\ arduino-1.6.7 \ libraries のようなarduinoライブラリフォルダのルートディレクトリにフォルダを配置します
ライブラリ関数の説明:
1) bi_polar_Stepper(intpin1、int pin2、int pin3、int pin4)- これにより、ステッピングモータードライバーピンを使用して、arduinoスケッチにbi_polar_Stepperのインスタンスが作成されます。つまり、ステッピングモーターを駆動するために使用されるarduinoボードピンを指定する必要があります
2) set_step_per_rev(intsteps)- この機能は、ステッピングモーターが1回転を完了するために必要なステップ数を設定します。モーターのステップ角(ステップ分解能)を設定することを意味します。正確な制御のためには、モーターのステップ角を入力する必要があります
3) set_RPM(int rpm)– この機能はモーターの速度をRPMで設定し、モーターは最大95%の精度で選択された速度で回転します
4) rotate_CW()- この機能はモーターを時計回りに回転させ始めます。モーターを時計回りに連続的に回転させるには、この機能を連続ループで使用する必要があります
5) rotate_CCW()- この機能は、モーターを反時計回りに回転させ始めます。モーターを反時計回りに連続的に回転させるには、この機能を連続ループで使用する必要があります
6) rotate(int dir)- この機能は、選択した方向に従ってモーターを回転させます。方向が1の場合、モーターは時計回りに回転し、その逆も同様です
7) rotate_one_rev(intdir)- この機能は、モーターを選択した方向に正確に1回転させます
8) rotate_n_rev(int dir、intnum)- この機能は、モーターに必要な回転数を選択した方向に回転させます
9) rotate_x_deg(int deg)– この機能は、モーターを回転させて、80〜100%の角度精度でいずれかの方向に0〜360°の角度を希望します
例:
1)モーターを60RPMで任意の方向に連続的に回転させます
/ *このプログラムはバイポーラステッピングモーターを継続的に回転させます
* 60 RPMで1.8度のステップ角(200ステップ/回転)で
* 2016年12月12日にAshutoshBhattによって作成されました
* /
#include
#define Steps 200 //モーターごとにこのステップを変更する
bi_polar_Stepper my_step_motor(8、9、10、11);
int rpm =60;
void setup()
{
//セットアップコードをここに配置して、1回実行します:
Serial.begin(9600);
Serial.println( "バイポーラステッピングモーターライブラリテストプログラム");
my_step_motor.set_step_per_rev(steps);
my_step_motor.set_RPM(rpm);
Serial.println( "モーターは時計回りに回転します");
}
void loop()
{
my_step_motor.rotate_CW();
}
2)モーターを時計回りに1回転、反時計回りに1回転連続して回転させます
/ *このプログラムはバイポーラステッピングモーターを回転させます
* 1.8度のステップ角度(200ステップ/回転)
*時計回りに1回転(CW)および1回転として
* 30 RPMで反時計回り(CCW)連続
* 2016年12月12日にAshutoshBhattによって作成されました
* /
#include
#define step 200
bi_polar_Stepper my_step_motor(8、9、10、11);
int rpm =30;
void setup()
{
//セットアップコードをここに配置して、1回実行します:
Serial.begin(9600);
Serial.println( "Ashutosh Bhattによって作成されたバイポーラステッピングモーターライブラリテストプログラム");
my_step_motor.set_step_per_rev(steps);
my_step_motor.set_RPM(rpm);
}
void loop()
{
Serial.println( "モーターは時計回りに回転します");
my_step_motor.rotate_one_rev(1);
delay(1000);
Serial.println( "モーターは反時計回りに回転します");
my_step_motor.rotate_one_rev(0);
delay(1000);
}
3)モーターを100 RPMで時計回りに回転させ、50RPMで反時計回りに連続的に回転させます
/ *このプログラムは最初にバイポーラステッピングモーターを回転させます
* 1.8度のステップ角度(200ステップ/回転)
*時計回り(CW)で100 RPMで2回転し、その後
*反時計回り(CCW)、50 RPMで2回転
*継続的に
* 2016年12月12日にAshutoshBhattによって作成されました
* /
#include
#define step 200
bi_polar_Stepper my_step_motor(2、3、4、5);
int i;
void setup()
{
Serial.begin(9600);
Serial.println( "Ashutosh Bhattによって作成されたバイポーラステッピングモーターライブラリテストプログラム");
my_step_motor.set_step_per_rev(steps);
}
void loop()
{
my_step_motor.set_RPM(100);
for(i =0; i <100; i ++)my_step_motor.rotate(1);
delay(2000);
my_step_motor.set_RPM(50);
for(i =0; i <100; i ++)my_step_motor.rotate(0);
delay(2000);
}
4)モーターを20 RPMで時計回りに4回転させ、10RPMで反時計回りに2回転させます
/ *このプログラムは最初にバイポーラステッピングモーターを回転させます
* 1.8度のステップ角度(200ステップ/回転)
* 20 RPMで時計回りに4回転(CW)してから
* 10 RPMで反時計回り(CCW)に2回転
*継続的に
* 2016年12月12日にAshutoshBhattによって作成されました
* /
#include
#define step 200
bi_polar_Stepper my_step_motor(2、3、4、5);
int i;
void setup()
{
Serial.begin(9600);
Serial.println( "Ashutosh Bhattによって作成されたユニポーラステッピングモーターライブラリテストプログラム");
my_step_motor.set_step_per_rev(steps);
}
void loop()
{
my_step_motor.set_RPM(20);
my_step_motor.rotate_n_rev(1、4);
delay(2000);
my_step_motor.set_RPM(10);
my_step_motor.rotate_n_rev(0、2);
delay(2000);
}
5)モーターを時計回りに90°回転させ、反時計回りに90°回転させます。
/ *このプログラムはバイポーラモーターを回転させます
* 30 RPMで1.8度のステップ角度(200ステップ/回転)で
* 90度CWおよび90度CCW連続
* 2016年10月22日にAshutoshBhattによって作成されました
* /
#include
#define motor_steps 200
bi_polar_Stepper my_step_motor(8、9、10、11);
int rpm =30;
void setup()
{
//セットアップコードをここに配置して、1回実行します:
Serial.begin(9600);
Serial.println( "バイポーラステッピングモーターライブラリテストプログラム");
my_step_motor.set_step_per_rev(motor_steps);
my_step_motor.set_RPM(rpm);
Serial.println( "モーターが前後に90度回転します");
}
void loop()
{
my_step_motor.rotate_x_deg(90);
delay(2000);
my_step_motor.rotate_x_deg(270);
delay(2000);
}
注:-ステッピングモーターの電流および電圧定格が高い場合は、L293Dチップの代わりに、L298チップを使用するか、TIP122、TIP142などの4つの個別のダーリントントランジスタのセットを使用してステッピングモーターを駆動できます。
上記の回路とともに与えられたライブラリとサンプルプログラムは、次のステッピングモーターでテストされています
1)5V、100 RPM(MAX)、200ステップ/回転(1.8oステップ角)の2相バイポーラモーター
2)5V、60 RPM(MAX)、200ステップ/回転(1.8oステップ角)の2相バイポーラモーター
コード
- バイポーラステッピングモーター用のArduinoライブラリ
バイポーラステッピングモーター用Arduinoライブラリ C / C ++
ライブラリは、すべてのタイプのバイポーラステッピングモーターのRPM、方向、回転数、回転角を95%の精度で制御しますプレビューなし(ダウンロードのみ)。
回路図
この回路は、RPM、方向、回転角、バイポーラステッピングモーターの回転数を駆動および制御します 製造プロセス