工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino用バイポーラステッピングモーターライブラリ – 産業グレードの制御機能

必要なパーツと用品

Arduino UNO ×1
Texas Instruments L293D デュアルHブリッジ ドライバー ×1

使用するアプリ

プロジェクト概要

従来のユニポーラステッピングモーター用ライブラリに加え、バイポーラタイプにも対応した包括的なArduinoライブラリを開発しました。産業用モーション制御の要件を満たすよう設計されており、以下の機能を提供します。

主な特徴

Arduino用バイポーラステッピングモーターライブラリ – 産業グレードの制御機能

ライブラリ関数の説明

  1. bi_polar_Stepper(int pin1, int pin2, int pin3, int pin4) – インスタンス生成。ドライバー接続ピンを指定。
  2. set_step_per_rev(int steps) – 1回転あたりのステップ数を設定(ステップ角の設定)。正確な制御のため必須。
  3. set_RPM(int rpm) – 回転速度をRPMで設定(95%精度)。
  4. rotate_CW() – 正転(時計回り)連続回転。ループ内で呼び出し。
  5. rotate_CCW() – 逆転(反時計回り)連続回転。ループ内で呼び出し。
  6. rotate(int dir) – 方向指定で1ステップ回転(1=正転, 0=逆転)。
  7. rotate_one_rev(int dir) – 指定方向にちょうど1回転。
  8. rotate_n_rev(int dir, int num) – 指定方向に指定回転数だけ回転。
  9. rotate_x_deg(int deg) – 指定角度(0〜360°)だけ回転(正負で方向指定)。

使用例

例1: 60 RPMで連続正転

#include 
#define steps 200  // モーターに合わせて変更(1.8°なら200)
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 60;
void setup() {
  Serial.begin(9600);
  my_step_motor.set_step_per_rev(steps);
  my_step_motor.set_RPM(rpm);
}
void loop() {
  my_step_motor.rotate_CW();
}

例2: 30 RPMで正転1回転→逆転1回転を繰り返し

#include 
#define steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;
void setup() {
  Serial.begin(9600);
  my_step_motor.set_step_per_rev(steps);
  my_step_motor.set_RPM(rpm);
}
void loop() {
  my_step_motor.rotate_one_rev(1);
  delay(1000);
  my_step_motor.rotate_one_rev(0);
  delay(1000);
}

例3: 正転100 RPMで2回転 → 逆転50 RPMで2回転

#include 
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;
void setup() {
  Serial.begin(9600);
  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回転 → 逆転10 RPMで2回転

#include 
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
void setup() {
  Serial.begin(9600);
  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: 30 RPMで90°正転⇔90°逆転を繰り返し

#include 
#define motor_steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;
void setup() {
  Serial.begin(9600);
  my_step_motor.set_step_per_rev(motor_steps);
  my_step_motor.set_RPM(rpm);
}
void loop() {
  my_step_motor.rotate_x_deg(90);
  delay(2000);
  my_step_motor.rotate_x_deg(-90);  // または270
  delay(2000);
}

高電流・高電圧モーターへの対応

定格電流/電圧が大きいモーターの場合、L293Dの代わりにL298ドライバーや、TIP122/TIP142などのダーリントントランジスタ4個をHブリッジ構成で使用できます。

動作確認済みモーター

ライブラリファイル

ライブラリフォルダ bi_polar_Stepper をArduinoのライブラリフォルダ(例: C:\arduino-1.6.7\libraries)にコピーしてください。ライブラリ本体はダウンロード提供されています(プレビュー不可)。

回路図

Arduino用バイポーラステッピングモーターライブラリ – 産業グレードの制御機能

製造プロセス

  1. Sensor Telemetry 2.0.1:Azure IoT Hubによる高度な温度監視
  2. Raspoulette:太陽光発電自律コープドアシステムのプロトタイプ
  3. DIY自律型ナーフセントリーガン:ステッピングモーター、カメラ、Arduinoでスマートナーフガンを自作
  4. ArduinoとステッピングモーターでTinder/Bumbleを自動スワイプする装置
  5. SmartWay: GPS・振動モーター・RGB LED・Arduino MKR Fox 1200で子供の通学を見守り
  6. リニアモーター理解:電気エネルギーから精密直線運動へ
  7. サーボモーターの仕組みと重要性
  8. サーボモーター vs ステッピングモーター:現代のグレーゾーンを明確にする
  9. 可変リラクタンスモーター:種類、動作原理、応用
  10. ステッピングモーター:種類、特性、実用応用
  11. 統合ドライバーが高出力ステッピングモーター設計を簡素化