INDEX(各項目ごとの目次)

[HOME]  [Processing関係]  [Arduino関係]  [マテリアル関係]  [秋葉原工作マップ]

2008年用ですが、部分的に内容を更新しています(2010/06/14)。
また、[建築農業工作ゼミ2009-2010]とも連動していますので、そちらにも幾つかサンプルがあります。
:

ラベル モータ の投稿を表示しています。 すべての投稿を表示
ラベル モータ の投稿を表示しています。 すべての投稿を表示

8/20/2008

Arduino モータドライバ+モータ

以前「Arduino 小型DCモータ/TA7291P」で、モータドライバICのTA7291Pを用いてDCモータの制御を行いました。TA7291Pは、許容電流は1.0A(最大2.0A)なので小型のDCモータ向きでした。より大きなモータを制御するには、以下のようなモータドライバあるいはモータコントローラなどがあります。Arduino基盤に対して、電圧、電流ともに許容値を超えるため、モータ駆動用外部電源が必要になります。


東芝 TA7291P


東芝 TA8440HQ:PWM端子付きブリッジドライバIC


NEC UPD16805:モータドライブ用IC


東芝 TA8429HQ


STマイクロエレクトロニクス L6203


「モータドライバIC」
TA7291P :連続1.0A(最大2.0A):モータ用電源 0~20V
TA7279P :連続1.0A(最大3.0A):モータ用電源 0~16V(PWM端子なし)
TA8440HQ:連続1.5A(最大3.0A):モータ用電源 0~50V
UPD16805:連続1.0A(最大4.2A):モータ用電源 0.5~8.0V
TA8429HQ:連続3.0A(最大4.5A):モータ用電源 7~27V
L6203 :連続4.0A(最大5.0A):モータ用電源 12~48V
TB62300F:連続2.5A(最大8.0A):モータ用電源 18~40V

「モータドライバボード」
Poloru VNH3SP30:連続9A(最大30A) :モータ用電源最大30V
Poloru VNH2SP30:連続14A(最大30A):モータ用電源最大19V

「モータコントローラ」
SyRen10 :連続10A(最大15A) :モータ用電源 6~24V
SyRen25 :連続25A(最大45A) :モータ用電源 6~24V
Pololu SMC04 :最大30A  :モータ用電源 6~18V
KONDO UMD-540S:50A以下:モータ用電源 4.8~12V

「デュアルモータコントローラ(モータ2個制御)」
Sabertooth2x5 :連続5A(最大10A) :モータ用電源 6~18V
Sabertooth2x10 :連続10A(最大15A):モータ用電源 6~24V
Sabertooth2x25 :連続25A(最大50A):モータ用電源 6~24V

「ラジコンカー用スピードコントローラ/アンプ」
FUTABA MC230CR 連続45A(最大90A) :モータ用電源7.2V〜8.4V
FUTABA MC330CR 連続100A(最大200A):モータ用電源7.2V〜8.4V
KONDO VFS-FR 連続240A(最大960A):モータ用電源7.2V〜8.4V


連続アンペア数は、PWM制御など使わず直接連続運転したときの許容値になります。ArduinoのanalogWrite()やパルスを生成してPWM制御するならば、最大アンペア数近くまで出力可能になります。ただし、ドライバによって性質が異なるので、ゆとりを見ておいたほうがいいでしょう。あまりにも発熱しすぎる場合は、放熱器をドライバ本体に取付ける必要があります。

大抵のモータドライバやモータコントローラなどには、
・回路用電源端子(5V/Arduino基盤5V端子へ)
・モータ用端子(2端子/モータへ接続)
・外部電源端子(モータ駆動用電源/GNDは他と共有)
・GND共有端子(Arduino基盤GND端子と共有)
・正転/逆転/停止など切替用信号端子(2端子/Arduino基盤へ)
・PWM用端子(Arduino基盤PWM端子へ)
がついているはずなので、接続方法はほぼ共通しています。


ラジコン用アンプについて
ラジコンカー用スピードコントローラ(アンプ)の場合、レース用のものは「バックなし(前進のみ)」が多いため、「バック付き(前進/後進)」かどうかを確認する必要があります。


フタバ MC231CR アンプ【送料無料】


フタバ MC331CR アンプ【送料無料】


【ラジコン RCパーツ】KO PROPO【ESC(アンプ)】VFS-FRバック付きVFS

アンプ本体には、
・モータ用端子(2端子/モータへ接続)
・外部電源端子(モータ駆動用電源/ラジコン用7.2Vバッテリーなどへ接続)
・3本線
  回路用電源:赤(Arduino基盤5V端子へ)
  GND:黒(Arduino基盤GNDと共有)
  信号線:白(Arduino基盤PWM端子へ)
がついています。ArduinoのanalogWrite()で、PWMピンと信号線(白)を接続して(サーボをPWM制御するような方法)、スピード調整/正転/反転/停止できます。analogWrite()の括弧内の値(0〜255)を中点(127前後)にすると停止状態になるはずです。
あるいは、Arduinoのサーボライブラリのservo.write()を使って0~180の範囲(90が中点)で制御することができるはずです。

上記以外に、MOS-FETを用いてモータドライバを自作する方法もあります。


一般的な模型用モータ
モータについては、一般的なラジコンや模型用(マブチモータ)のものであれば、以下のようなものが挙げられます。

FA-130RA:1.5V時/最大効率時電流0.66A/瞬間最大電流2.20A
RE-140RA:1.5V時/最大効率時電流0.66A/瞬間最大電流2.10A
RE-260RA:3.0V時/最大効率時電流0.64A/瞬間最大電流2.70A
RE-280RA:3.0V時/最大効率時電流0.87A/瞬間最大電流4.70A
RS-380PH:7.2V時/最大効率時電流3.23A/瞬間最大電流14.9A
RS-540SH:7.2V時/最大効率時電流4.57A/瞬間最大電流22.2A

最大効率時電流は、通常時の電流とみなしてもいいでしょう。瞬間最大電流は、急停止や逆転時など様々な負荷がかかった時(負荷をかけて停止した時)の電流値です。一定の速度で回転しているようなものであればいいのですが、回転方向や速度を変化させるような場合は、瞬間最大電流を考慮にいれる必要があります。その場合は瞬間最大電流を許容できるモータドライバが必要になります。

上記のモータにギヤヘッドが取付けてある「タミヤ・ギヤードモータ」シリーズは、比較的高トルクが得られます。380モータであれば、7.2V電源で瞬間最大電流が14.9Aなので、上記モータドライバICでは許容アンペア数が低すぎるため、最低でも15Aまで耐えられる「SyRen10」などが必要になるでしょう。540モータであれば、7.2V電源使用時なら22.2A以上、12V電源使用時なら37A以上耐えられるモータコントローラ「SyRen25」などが必要になるでしょう。
小型のモータであれば、「タミヤ・テクニクラフト」シリーズのギヤボックスなどがあります。

尚、モータのデータシートには「性能線図」と呼ばれる表が掲載されている場合があります。この表を用いて、モータの特性を調べることができます。マブチモータのサイトには性能線図の分かりやすい説明があります。


大型のモータ(その他モータの種類についてはこちら
人を動かすことができる大型のモータであれば、以下のようなものがあり、専用のモータドライバユニットにArduinoを接続しPWM制御可能です。
オリエンタルモータ BLHシリーズ/100W/DC24V(このモータを使った説明
また、以下のようなロボット用/精密機械用のモータであれば、小型なものから大型のものまであります。
マクソンモータ(スイス製)
光進電気工業(ファールハーバー/ドイツ製)
ツカサ電工


松下電器産業 ギアーヘッド

6/08/2008

Arduino 小型DCモータ/TA7291P

小型のDCモータ「FA-130」を制御する方法についてです。このモータは、車のプラモデルなどに使われるDCモータです。最大で500mAの電流が流れます。大抵DCモータを扱う場合、Arduino基盤にとっては過電流となるので別電源(乾電池など)が必要となります。
DCモータには二本の線がついており、一方をプラスに、もう一方をマイナスにつなげば回転し、プラスとマイナスを入れ替えれば逆回転します。スピードは、電圧が低いと遅く、高いと速く回転しますが、今回の場合はPWM(パルス)で調節します。パルスは、一定の電圧でONとOFFを高速に繰り返して出力する方法で、ONの継続時間が長いほど速く回転し、OFFの時間が長いほど遅く回転します。このONとOFFの時間の比率を「デューティ比」と言います(実際には、回転速度というよりトルクに反映されます)。



上図と下図を比較すると、「ONの継続時間」については、下図より上図のほうが長いので、上図の方がモータは速く回転します(トルクが高くなります)。



PWMでは、このONとOFFの時間の比率を変えることでスピード調節を行っています。以前行ったLEDの照度調整も同様の仕組みです。LEDの場合、実際は点滅しているのに過ぎないのですが、繰り返されるON/OFFがあまりにも速いので、明るさが変わったように見えています。

また下図のように、モータを正転/逆転させる場合は、電源へつないでいる二本の線の途中にスイッチを設けて入れ替え可能にします。切り離せば静止状態になります。このような切替を可能にする回路を「Hブリッジ回路」といいます。



そこで、いままで説明したことを容易にしてくれるのが、今回用いるモータドライバIC「TA7291P」です。「TA7291P」には、10本の端子があります。
東芝 TA7291P

東芝 TA7291P

価格:189円(税込、送料別)





 1:GND(Arduino/GND端子)と共有
 2:モータの端子へ接続
 3:非接続
 4:PWM端子(Arduino/アナログ出力端子)へ接続
 5:信号用端子(Arduino/デジタル出力端子)へ接続
 6:信号用端子(Arduino/デジタル出力端子)へ接続
 7:5V電源(Arduino/5V端子)と共有
 8:外部電源のプラス端子へ接続(乾電池など)
 9:非接続
10:モータの端子へ接続

今回は、可変抵抗器で正転/逆転/静止/スピード調節しようと思います。以下のようにそれぞれを接続することとします。複雑な配線に見えるかもしれませんが、間違わずにそれぞれを接続して下さい。


TA7291Pの5番ピンと6番ピンは、静止/正転/逆転を決めるための信号用の端子であり(それぞれArduinoのデジタル出力の1番ピン、2番ピンに接続)、
5番ピンが「LOW」、6番ピンが「LOW」の場合は静止
5番ピンが「HIGH」、6番ピンが「LOW」の場合は正転
5番ピンが「LOW」、6番ピンが「HIGH」の場合は逆転
となります。ArduinoのdigitalWrite()から出力されるLOW/HIGHの組合わせによって決められます。つまり、Arduinoのデジタル出力1番ピンと2番ピンのHIGH/LOWの出力の組合わせをプログラムによって操作することになります。
スピード調節については、TA7291Pの4番ピンがArduinoのアナログ出力の3番ピン(PWMピン)と接続され、ArduinoからPWM出力によって制御されます。

今回は、可変抵抗器を右に回すと正転、左に回すと逆転、中間だと静止するプログラムにします。可変抵抗器からanalogRead()によって読み取られる値は0〜1023なので、それを2で割って0〜511にスケールダウンし、
  0〜254:逆転(0で高速、254で低速)
255〜256:静止
257〜511:正転(257で低速、511で高速)
となるようにします。逆転時では数値が0に近いほど速く、254に近いほど遅くなり、正転時では数値が大きいほど速くなるので、調整した値をanalogWrite()の出力値に入れます。よって、以下のようなプログラムになります。

Arduinoのプログラム:

void setup(){
pinMode(1,OUTPUT); //信号用ピン
pinMode(2,OUTPUT); //信号用ピン
}

void loop(){
//アナログ入力:0番ピンの値を2で割る
int val=analogRead(0)/2; //0~511の値にする

//静止/正転/逆転の状態に分けてプログラムする
if(val>=255 && val<=256){ //静止:255~256
//LOW,LOWでデジタル出力
digitalWrite(1,LOW);
digitalWrite(2,LOW);
}else if(val>256){ //正転:257~511
//HIGH,LOWでデジタル出力
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
//valが大きいほど出力値も大きくなる
analogWrite(3,val-256); //出力値:1~255
}else{ //逆転:0~254
//LOW,HIGHでデジタル出力
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
//valが小さいほど出力値は大きくなる
analogWrite(3,255-val); //出力値:1~255
}
}

外部電源には、1.5Vの乾電池が4本入る電池ボックスなどを使うといいでしょう。
TA7291Pのデータシートには、外部電源のプラス端子をつなぐための8番ピンの電圧は、PWMに使うための4番ピンの電圧以上なければいけないと書いてあります。これに従えば、今回の場合の外部電源は、5V以上必要となります。

関連:「Arduino モータドライバ+モータ」(その他のモータドライバ等について)


MonotaRO (モノタロウ)


[目次:Processing関係]  [HOMEへ戻る]  [目次:Arduino関係]