市販のモータードライバ

市販の使えるモータードライバのメモ

モーターを回したい

とりあえず何か動くものを作ろうと思ったとき, その手段の1つにDCモーターを使うというのがあります. もちろん, 世の中にはモーター以外にも様々なアクチュエーターがありますが, 値段や入手性を考えるとDCモーターは手頃なアクチュエーターの1つかと思います.

しかし, マイコン等からモーターを動かすにはそれ専用に回路が必要です. ArduinoやRaspberryPiにモーターを直接つないでも回りませんし, 最悪の場合ArduinoやRaspberryPiが壊れてしまう場合もあります. そのため, モーターを動かしたいときには「モータードライバ」を用いて回すことが一般的です.

このモータードライバは自作することもできるのですが, しっかりしたものを作ろうと思うと, 回路の知識は当然としてMOSFETやコンデンサ等の各部品の細かな性質から熱力学まで幅広い知識が必要になります. 「いや~ 別にちょっとモーター回したいだけなんだよなぁ」という人には非常にハードルが高いのではないでしょうか. まれによく「DCモータードライバなんてFET4つ並べるだけだし, 自作したほうが安く上がる」みたいなことを言う人がいますがそういう回路半導体熱力学完全理解マンの言うことを真に受けると大変な目にあいます. 自作の方が安いってそれ一回も失敗しなかった場合の話ですからね(ほとんどの場合). まぁモータードライバの自作は非常に勉強になるのでそれが目的の人は是非作ってみると良いと思いますが.

というわけで今回はとりあえずモーターを動かしたい場合に使われている代表的なモータードライバを紹介していきたいと思います.

市販のモータードライバ

TA7291P

えー 何故かggるとめちゃくちゃよく紹介されていますね. 2007年には売られていたよう1なので10年以上前の化石なんですけどね…… 当時としては性能が良かったのかもしれませんが, 2014年ころにはもっと性能の良いモータードライバも出てきているはずなのでどうしてここまで人気なのか自分にはわかりません. 特徴としては$V_{ref}$端子があり, ここから目標となる電圧を入力することで, その電圧で2モーターを回すことができます.

基本的な性能は出力電流が定常1Aで最大2A, 電圧は4.5~25Vまで対応してます. FA-130RAなどのいわゆる模型用モーターに適したスペックです.

しかしながらこのモータードライバ, 現在主流のFETではなく, バイポーラトランジスタを用いてモーターを駆動しているところです. また, 先程$V_{ref}$端子で出力を指定できると書きましたが, 入力電圧と出力電圧の差は全て熱となって捨てられています.3 そのため, モータードライバ自体が発熱し, 非常に高温になります. 一応保護回路が内蔵されていて約170度を超えると出力を遮断するはずですが, 間に合わずに燃えてしまうこともしばしばです. このような損失をできるだけ減らすため, 現在はPWM等を用いて出力を調整するのですが, このTA7291PはPWMに対応していません. データーシートのどこを読んでもPWMという単語はでてきません. ネットを探すと無責任に「TA7291Pを使ってPWMでモーターを制御しよう」みたいなことを言ってる記事を見ますが…… 確かにPWMでも動かなくはないんですが, 周波数が1kHzを超えるとスイッチングが間に合わずうまく動きません. PWMをかけたければ1kHz未満で駆動することをおすすめします.

なお, 最近ようやくディスコンになったようで, 後継品としてTB67H450FNGが推奨されているようです.

TB67H450FNG

最近発売されたばかりでまだ庶民のお目にかかるところには出てきてないんですかね. 僕はまだ実際に使われているところを展示会以外でみたことがありません.

性能としては, 出力電流が定常1.5Aで最大3.5A, 電圧は4.5~44Vまで対応しています. また, 制御ロジックの入力周波数は最大400kHzまで対応してます. 加えて, 定電流制御モードでモーターを動作させることができ, $V_{ref}$端子に印加する電圧とRSS端子に接続する抵抗の大きさで電流値を指定することが出来ます.

定電流出力モードの時は設定電流になるまで電圧をかけ, 設定電流に到達すると25$\mathrm{\mu s}$の停止時間(うち半分は逆に電圧を加える, のこり半分はモーター端子をショート)4に移行し, 停止時間を終えるとまた設定電流に到達するまで電圧を加えるというのを繰り返すようです.

TA7291Pと比較すると, PWMに対応, 定電流制御機能も持ち, 効率も大幅に改善され, 十分に後継品として使えるのではないでしょうか. おそらく$V_{ref}$端子から入力を与えられると言う点でTA7291Pの後継品として指定されたと思うのですが, TA7291Pの場合は端子は目標電圧を入力するのに対し, TB67H450FNGの場合は端子に目標電流に対応した電圧を入力するので完全に一緒というわけではありません. 電圧を制御するにはPWMで入力する必要があります. ただ, 実際にちょっとした電子工作で使うのであれば, 定電流制御よりPWM入力を使う人の方が多いのではないでしょうか. もし定電流制御を使わないのであれば, このTB67H450FNGより後述するTB6612FNGをおすすめします.

TB6612FNG

結構前から売られているんですが, TA7291Pの勢力が強すぎてなかなか使っている人を見なかった(最近はそうでもないっぽい). 個人的にはTA7291Pよりよっぽど優れていると思うんですが…… 最近は秋月電子でも取扱も始まってだいぶ入手しやすくなりました.

特徴としては, 2chが1つのパッケージに内蔵されており, 1つのICで2つのモーターを回すことが出来ます. 出力電流が1chあたり定常で1.2Aで最大3.2A, 電圧は2.5Vから15Vまで対応しています. PWMは最大100kHzまで対応しています.

小型で2つのモーターを回せ, 効率も良いので個人的にはとてもおすすめです. 表面実装部品でピン間隔が狭いとい8うのがちょっとデメリットですが, Pololuや秋月からDIP化されたキットも発売されているのでそちらを使えばブレットボードなどでも使えます.

VNH5019

よくVNHと呼ばれているやつです. 出力が比較的大きく, 小型なことから使っている人をよく見ます.

性能としては, 最大30A出力でき, 電圧は5.5〜24V, PWMは最大20kHzまで対応しています. RS380モーターであったり, (そこまで大出力を求めないのであれば)RS540モーターを回したりするのにちょうど良いです. また, 電流検出ピンや, 電流制限を設定できるなどの機能も持っています.

このVNHを搭載したモータードライバーボードがPololuなどから売られており, 比較的簡単に使うことができます. また, 朱雀技研でチップ単体で入手することも出来ます. AmazonとかAliexpressとかで海賊版5と思われるチップやドライバーボードが出回っていますがおすすめしません. 不良品率が高いのと普通に海賊版に手を出すなよという話.

デメリットとしてはon抵抗がでかい(18mΩ!!)ため発熱が大きいことが挙げられます. 大きめの電流を連続して流す場合は放熱対策をしたほうが良いでしょう. ドライバーボードの値段が高いというのもデメリットとして挙げられないこともないです(海賊版が蔓延っているのはたぶんこれ). 確かに個人で買うには財布が痛いですがチップ単体で買うとそこまで高くはないので価格に不満がある人は自分で基板を設計してチップだけ買って実装すれば安く済みそうです.

MD13S

Cytronから出ているモータードライバーです. 朱雀技研やスイッチサイエンスなどで入手する事ができます.

性能としては, 連続13A, 最大30A出力でき, 電圧は6V~30V, PWMは最大20kHzまで対応しています. 電流検出ピンなどの機能はありませんが, それを除くと先程紹介したVNHと同じように使えるでしょう.

ユーザーマニュアルにあまり記述がないのでon抵抗などの詳しいデータはわかりませんが, Arduinoライブラリやサンプルコードがあるのでとりあえず使う分には問題ないでしょう.

VNHよりも面積が大きいのがデメリットですが, コスパは良いのでVNH高すぎると思う人はこちらを使ってみてはどうでしょう.

Pololu G2 High-Power Motor Driver 18v17

Pololuから出ているモータードライバです. 朱雀技研などで入手することが出来ます.

性能は, 連続17Aで6.5~30Vに対応, PWM周波数は100kHzまで対応しています. 電流制限機能や電流検出ピンも備えています.

先程紹介したVNHの上位互換という印象です. 恐らくon抵抗もVNHよりは小さいと思います(データーシートがないので詳しいことが分からない). 大きさもそこまで変わらないのでVNHが気に食わない人は使ってみると良いかも.

MD20A

Cytronから出ているモータードライバーです. 朱雀技研などで入手することが出来ます.

性能は, 連続で20Aで最大60A, 6V~30Vに対応し, PWM周波数は通常モードで最大20kHz, 拡張モードで20kHz~40kHzとなっています. 6

このくらいのモータードライバーになってくると, RS540等の高出力なモーターも余裕を持って回せますし, RS775等の超高出力なモーターもそれなりに回すことができると思います. コストパフォマンスも良いですし, ちょっとモーター回したいときにはちょうど良いのではないでしょうか.

まとめ

市販のモータードライバで, よく使われているものや個人的に使いやすいのではないかと思うものを上げてみました. 市販のモータードライバーは昔はあまり良いものが売られていませんでしたが, 最近は性能が向上しており, 使いやすくなったと思います. また, スイッチサイエンス朱雀技研が海外の使いやすいモータードライバを輸入販売しており, このあたりを探すと良さそうなモータードライバがたくさんあります. 今回紹介したものはごく一部ですので, 興味があれば探してみるとより良いのではないでしょうか. ここに紹介したもの以外にも良さそうなものがたくさんあります. ちょっとモーターを回したいときに是非使ってみてください.

参考

https://toshiba.semicon-storage.com/jp/product/linear/motordriver/detail.TA7291P.html

https://toshiba.semicon-storage.com/jp/product/linear/motordriver/detail.TB67H450FNG.html

https://www.st.com/content/st_com/ja/products/automotive-analog-and-power/motor-driver-ics/vnh5019a-e.html

https://products.suzakugiken.jp/cytron/cytron-md13s/

https://products.suzakugiken.jp/pololu/pololu-2991/

https://products.suzakugiken.jp/cytron/cytron-md20a/


  1. データーシートには2007-6-13と書かれているのでこの頃には販売されていたと考えられる. (もしかすると発表が2007年で発売は1年くらい後かもしれない) ↩︎

  2. 厳密には約$V_{ref}+0.7\mathrm{[V]}$らしい(データーシートより) ↩︎

  3. ハイサイド側のトランジスタを飽和領域で使用していると思われる. ↩︎

  4. データーシートではそれぞれFastモード, Slowモードと書かれている. ↩︎

  5. 海賊版は異様に安い(正規品の1/2~1/6の価格)が, そもそも動かなかったり, 一部の機能が使えなかったりすることが多い. ↩︎

  6. データーシートから. なお拡張モードでは最大連続電流が減少する模様. ↩︎

一般学生

NHKロボコンやってた

comments powered by Disqus