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

高性能Arduinoライブラリ:DCモーター制御用

必要なコンポーネントと用品

パーツ 数量
Arduino UNO 1
汎用NPNトランジスタ 2
汎用PNPトランジスタ 2
抵抗 1kΩ 2
1N4007 ダイオード(高耐圧・大電流) 4

アプリとオンラインサービス

プロジェクト概要

高性能Arduinoライブラリ:DCモーター制御用

ここでは、産業用モーション制御の要件を念頭に設計された、DCモーターを多彩に制御できるArduinoライブラリを紹介します。16の機能を備え、方向、速度、ソフトスタート、スムーズストップ、ジョグ制御、DCブレーキ(緊急停止)など、あらゆる制御ニーズに対応します。

ライブラリ関数の説明

  1. DC_Motor(int pin1, int pin2): モーター駆動用のArduinoピンを宣言
  2. DC_Motor(int pin1, int pin2, int speed_flag): PWM出力ピンを指定して速度制御を有効化
  3. start_motor(int dir): 指定方向でモーター起動(1=正転、0=逆転)
  4. forward(): 正転開始
  5. reverse(): 逆転開始
  6. dc_break(): 即座にモーター停止(DCブレーキ)*
  7. stop_motor(): モーター停止
  8. jogg_full_speed(int dir): 指定方向にフル速度でジョグ(5秒間)*
  9. set_speed(int speed): 速度を0-100%で設定
  10. forward_with_set_speed(): 設定速度で正転
  11. reverse_with_set_speed(): 設定速度で逆転
  12. run_motor(int dir, int speed): 指定方向・速度で回転
  13. jogg_set_speed(int dir, int speed): 指定方向・速度でジョグ
  14. motor_speed_zero(): 速度を0にして停止(アナログ出力最小)*
  15. soft_start(int dir, int speed, int time_in_sec): 0から設定速度まで指定秒数で加速(ソフトスタート)
  16. smooth_stop(int time_in_sec): 現在速度から0まで指定秒数で減速(スムーズストップ)

*注: dc_break() はモーター内部に動的制動抵抗(DBR)などの対策がある場合のみ有効。回路設計に注意が必要です。motor_speed_zero() は速度制御時専用で、stop_motor()(デジタル出力)とは併用しないでください。

使用例

1) 速度制御なしで正転・逆転

#include 
DC_Motor motor(8, 12);

void setup() {}
void loop() {
  motor.forward();
  delay(5000);
  motor.stop_motor();
  delay(2000);
  motor.reverse();
  delay(5000);
  motor.stop_motor();
  delay(2000);
}

2) 速度制御付きで正転・逆転

#include 
DC_Motor motor2(9, 10, 1); // PWMピン指定、speed_flag=1

void setup() {}
void loop() {
  motor2.set_speed(40);
  motor2.forward_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
  motor2.set_speed(80);
  motor2.reverse_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
}

3) ジョグ制御(速度制御あり/なし)

#include 
DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);

void setup() {}
void loop() {
  motor.jogg_full_speed(1);
  motor.jogg_full_speed(0);
  motor2.jogg_set_speed(0, 80);
  motor2.jogg_set_speed(1, 30);
}

4) ソフトスタートとスムーズストップ

#include 
DC_Motor motor2(9, 10, 1);

void setup() {}
void loop() {
  motor2.soft_start(1, 90, 10); // 正転、90%、10秒で加速
  delay(3000);
  motor2.smooth_stop(5);        // 5秒で減速停止
  motor2.soft_start(0, 50, 6);  // 逆転、50%、6秒で加速
  delay(3000);
  motor2.smooth_stop(3);        // 3秒で減速停止
}

ライブラリの導入方法

DC_Motor フォルダをArduinoのライブラリフォルダ(例: C:\arduino-1.6.7\libraries)にコピーするだけで使用可能です。

回路図

Arduino UNOとHブリッジドライバーを用いたDCモーター制御回路

高性能Arduinoライブラリ:DCモーター制御用

製造プロセス

  1. Satellite CCRMAキットでセンサー駆動オーディオエフェクトを構築
  2. 自宅で作るDIY宿題自動筆記マシン:AxiDraw風ペンプロッターの自作ガイド
  3. Arduino Unoベースの人間検知レスキューロボット:センサー統合ステップバイステップ
  4. Arduino用バイポーラステッピングモーターライブラリ – 産業グレードの制御機能
  5. Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
  6. ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
  7. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  8. ArduinoとAndroidでRoomba Create 2をリモコン操作 ─ Bluetooth経由のステップバイステップガイド
  9. Arduino & MPU6050:SG90 & MG996Rサーボの精密制御
  10. Bolt IoTとArduino UNOでLED輝度をシームレス制御
  11. Arduino向けスマート屋内ナビゲーションロボットキット