arduinoステッピングモーターシールド 大電流版

arduinoステッピングモーターシールドの作り方

シールドの仕様:
 ・ドライバーIC 東芝 TB6560AHQ
 ・最大電流    3.5A/相
 ・モーター電圧  5V~24V
 ・モーター種類  バイポーラステッピングモーター(モーターから4本電線が出ているタイプ)
 ・駆動方式    2相、1-2相、2W1-2相マイクロステップ、4W1-2相マイクロステップ
 ・arduinoおよび蛇の目基板で使用可能


2012-07-13

モーターを制御している所。この写真のarduinoは互換機です。

R0014982.jpg

*****************************************
 使い方
*****************************************

・各ピンの機能については表を参照

・DCジャックVM
  モーター電源を接続するためのもの
  arduinoから供給される5Vロジック電源以外にモーター用の電源が必要
  定格は5~24V
  ステッピングモーターは12もしくは24Vで使うことが多い

・モーター用端子
  A+:モーターのA相につなぐ
  A-:   同上
  B+:モーターのB相につなぐ
  B-:   同上
 ステッピングモーターには2つのコイルが入っていてそれぞれA相、B相と呼ばれる
 A+とA-、B+とB-はコイルなのでテスターで計測すると低い抵抗値になる
 A相とB相は絶縁されているのでテスターで両相間の抵抗値を計測すると∞Ωになる

・ディップスイッチ
  M1、M2でモーターの駆動モードを変更する
   M1=OFF,M2=OFF 2相
   M1=ON, M2=OFF 1-2相(ステップ角は2相の半分になる)
   M1=ON, M2=ON  2W1-2相マイクロステップ(ステップ角は2相の1/4)
   M1=OFF,M2=ON  4W1-2相マイクロステップ(ステップ角は2相の1/16)
  DCY1,DCY2でモーターに流す電流の制御モードを変更する
   通常両方ともOFFにする
   オシロスコープがないと設定すべき最適値はわからないのでOFFのまま使う
   詳しくはデータシートを参照

・RESETスイッチ
  arduinoのリセットスイッチをシールド上に増設した物

・タクトスイッチSW2、SW3
  特にモータードライバーとは関係の無い回路

・LED
   MO:電源ONで点灯。モーターが回ると点滅
   PROTECT:モータードライバー過熱時に点灯
   LED3:arduinoのD13ポートのLEDを増設した物

・基板の3mmの穴
  ヒートシンクを取り付ける時の補強用
  ICのパッケージはかなり頑丈なので小さなヒートシンクなら補強不要

基板表面。この写真一番下側の穴は蛇の目基板ピッチになっています。

R0014984.jpg

基板裏面。裏面に半田付けする部品はダイオード4個とピンヘッダだけです。

R0014987.jpg

部品表

arduinoss1partslist.png

ダイオードの取付向き表面。一番最初に表面のダイオードを半田付けして下さい。モーター用のターミナルを取り付けてしまうと半田付け困難になります。

R0014973.jpg

ダイオードの取付向き裏面

R0014992.jpg

電流制限抵抗は半田付けする本数で電流を調整します。キットには1Ωの抵抗が14本入っています。
 電流[A]=0.5[V]/抵抗値[Ω]
となります。
 抵抗値[Ω]=1[Ω]/取り付ける本数
です。電流は3.5A/相以下になるようにして下さい。A相、B相それぞれ3.5Aが最大です。
R8,9,10がA相用、R5,6,7がB相用です。A相、B相は同じ抵抗値にする必要があります。
複数ほんの抵抗を半田付けできるように穴はかなり大きくなっています。写真の例では各相6本の抵抗を取り付けて3.0Aの電流に設定しています。

R0014989.jpg

取り付ける抵抗の本数とモーターに流す電流の対応表

arss1.png

・赤丸の部品は取付向きがあります。
・黄色丸側の部品の足が長くなっています。向きが分かり難い電子部品はプラス側の足が長くなっています。黄色丸がプラスです。

arduinoss1brd.PNG

回路図

arduinoss1sch.PNG

ステッピングモーターシールド 各ピンの機能

arduinoSS1PIN.png
サンプル スケッチ
0001  /*---------------------------------------------------------------*/
0002 /* arduino stepper motor shield TB6560AHQ 3.5A Ver1.00 */
0003 /*---------------------------------------------------------------*/
0004 #define MOTOR_CLK 5 // D5
0005 #define MOTOR_RESET 3 // D3
0006 #define MOTOR_ENABLE 4 // D4
0007 #define MOTOR_CWCCW 19 // A5
0008 #define MOTOR_TQ1 6 // D6
0009 #define MOTOR_TQ2 7 // D7
0010
0011 #define CCW HIGH
0012 #define CW LOW
0013
0014 void tb6560_stop()
0015 {
0016 digitalWrite( MOTOR_RESET, LOW );
0017 digitalWrite( MOTOR_ENABLE, LOW );
0018 }
0019
0020 void tb6560_start()
0021 {
0022 digitalWrite( MOTOR_RESET, HIGH );
0023 digitalWrite( MOTOR_ENABLE, HIGH );
0024 }
0025
0026 void setup()
0027 {
0028 pinMode(MOTOR_CLK, OUTPUT);
0029 pinMode(MOTOR_RESET, OUTPUT);
0030 pinMode(MOTOR_ENABLE, OUTPUT);
0031 pinMode(MOTOR_CWCCW, OUTPUT);
0032 pinMode(MOTOR_TQ1, OUTPUT);
0033 pinMode(MOTOR_TQ2, OUTPUT);
0034
0035 digitalWrite(MOTOR_TQ1, LOW ); // torque = 100%
0036 digitalWrite(MOTOR_TQ2, LOW ); // torque = 100%
0037 }
0038
0039 void loop()
0040 {
0041 int i;
0042
0043 tb6560_start(); // power on
0044 digitalWrite(MOTOR_CWCCW, CW);
0045 for( i = 0; i < 400 ; i++ ) {
0046 digitalWrite(MOTOR_CLK, HIGH);
0047 delay(1);
0048 digitalWrite(MOTOR_CLK, LOW );
0049 delay(4);
0050 }
0051 tb6560_stop(); // power off
0052
0053 delay(1000);
0054
0055 tb6560_start(); // power on
0056 digitalWrite(MOTOR_CWCCW, CCW);
0057 for( i = 0; i < 400 ; i++ ) {
0058 digitalWrite(MOTOR_CLK, HIGH);
0059 delay(1);
0060 digitalWrite(MOTOR_CLK, LOW );
0061 delay(9);
0062 }
0063 tb6560_stop(); // power off
0064
0065 delay(1000);
0066 }
行番号
解説
14-18行目
RESとENをLowにするとモーターに流す電流がゼロになります。
20-24行目
モーターを回すときはRESとENをHighにします。
39-66行目
正転、逆転を永久に繰り返しています
EAGLEファイル&サンプルスケッチ
ファイル ファイルタイプ 添付ファイルの解説
arduinstepperino.zip OTHER arduinoサンプルスケッチ 上の物と同じです
arss1.wmv MOVIE arduinoサンプルスケッチを動かしているところ。ディップスイッチは全てOFFになっています。
TB6560arduino4.zip EAGLE EAGLE V4.15 回路図&基板レイアウト