« 全国大会優勝 | トップページ | 試合のビデオ »

2011年5月 8日 (日)

25A流せるモータードライバの回路について

25A流せるモータードライバの回路を自分で設計して、ユニバーサル基板にハンダ付けして、ロボットに乗せていました。

回路図です(クリックすると拡大します)↓

Fet2

この回路4つをコンパクトになるように配線図を考えて、95×72mmのユニバーサル基板にハンダ付けしています。

この回路を基板に4つ乗せているのは4つのモーターを動かすためです。

だから、合計で24個のFETを使っています。

ダイセンのモータードライバは6500円しますが、この回路を自作するとマイコンを合わせても3000円程に収まります。また、FETの最大電流が大きいため、FETが壊れる心配もありません。

貫通電流が流れないように、IN1&IN3を同時に、もしくは、IN2&IN4を同時に、HIGH(5V)を掛けないようにしてください。FETはおそらく壊れませんが、電線や電池が危険です。

PWM周波数については、僕は5kHzで、分解能については200分の1までにしています。

だからカウンタの周波数は1MHz(=5kHz×200)です。

 

少し回路の説明をしておきます。

モーターの逆起電力によってFETが故障しないようにダイオードを付けています。そのため、電源にノイズが乗ります。モーター用電池からマイコン用電源を供給しないほうがよいでしょう。

GNDについて、モーター用電源とマイコン用電源が共通になっていますが、電線1本で電位差を伝えることはできないため、ノイズが伝導することはありません。そのため、フォトカプラなどは使用していません。

次に、R2,R5,R6,R8,R9,R11は、マイコン用電源が投入されていない時にFETのゲートの電位が不安定にならないように、付けています。もしFETのゲートが不安定になるとモーターが勝手に回ったり、貫通電流が流れ危険だからです。

R4,R7,R10,R12は、FETのゲートを充電するときに、電流値がマイコンの絶対最大定格を超えないようにするために付けています。この抵抗がない、もしくは、抵抗値が低いと、マイコンが不安定になったり、壊れたりします。

R1,R3はそれぞれQ5,Q6からの電流が流れますが、マイコン用電源が不安定にならないように、そして、Q5,Q6の応答性を高めるために、47Ωにしています。

« 全国大会優勝 | トップページ | 試合のビデオ »

コメント

大会お疲れ様でした。アピゴールのケンたろ(マスクつけてるほう)です。
世界大会がんばってきてください!

今後ブログのほうから質問とうの返事が出来ない可能性があるので、連絡先を控えておきます。あとでメールください。

コメントして頂きありがとうございます。
メールしました。
迷惑メールが来ると面倒だと思うので、メルアドはコメントから消しときますね。

フォトカプラを使わない理由を見て思ったのですが、どれかのFETが静電破壊などでオープンで故障したときに、マイコンの出力が短絡してマイコンを巻き添えにする可能性がありませんか? フォトカプラは故障時に備えたFail-safeのためにあると思うのですが

コメントありがとうございます。
パワーMOS-FETが静電破壊するほどの静電気がかかる可能性(確率)があるのであれば、とっくにまずマイコンが壊れていませんか?

確かにそうですね。
では静電破壊ではなく、モーターがストールしたなどの理由のより出力がショートした場合、電池の出力的に25Aは流れませんが、放熱設計が甘いとFETが加熱で故障して短絡する可能性はあると思います。

FETのオン抵抗は決まっているので、25A流れたとしても、放熱設計が甘くても(空気中にFETを設置しているという条件さえ満たしていれば)、連続25Aでも壊れることはありません。オン抵抗と電流が決まれば電力(=熱量)が決まります。

また、上の記事で
>> 次に、R2,R5,R6,R8,R9,R11は、マイコン用電源が投入されていない時に
>> FETのゲートの電位が不安定にならないように、付けています。もしFETの
>> ゲートが不安定になるとモーターが勝手に回ったり、貫通電流が流れ危険
>> だからです。
と書いたように、マイコン用電源を投入していないときにショートしたりないようにR2,R5,R6,R8,R9,R11を設置しています。
いかがでしょうか?

すみません納得いきません。
バッテリーが限界で25A出せるとして計算すると、2SK2232の150℃の時のON抵抗は0.12Ωなので、電圧降下によって電圧は3Vになり、つまり75Wの熱量がFETで発生するわけです。
となると、150℃の定格を超えて故障しませんか?
実際は2段のFETを通るわけですから電流はもっと減りますが、熱が発生し続けるのは同じであるはずです。それならいずれ、FETの温度が絶対定格の150度を超えるのではないでしょうか?

僕の使っているeneloop6本では25Aを出すことはできません。

仮にリポなどを使ったとします。
ショートの原因は
①モーターが故障してショートすることはマブチモーターでは考えられません。電動ドリルなどに使われるモーターにそのようなことがあればたくさんのクレームが来るはずです。
②マイコンがフリーズしたとしても、I2C通信が乱れても、プログラムから見てFETに貫通電流が流れることはありません。

それでもショートしたと仮定します。
そうすればAWG22(許容電流3A)の電線を使用していますのでFETが150℃になる前に電線が焼ききれるのではないかと思います。
また、FETが150℃を超えたとしても、ゲート側に電流が漏れることがある(つまりマイコン側にモータ電源電圧がかかる)ということは確実なデータなのでしょうか?
なお、ゲートとソースがショートしたとしても抵抗によってマイコンが壊れることはありません。

別観点からですが、リポがショートすることはマイコンが壊れるかどうかよりロボット(電線)が炎上するかどうかを心配したほうがいいレベルだと思います。

エネループで25Aが出ないことは分かっています。私の25Aも仮の話です。eneloopは確か4Aぐらいが限界だったかと思います。

FETの焼損については、例えば過負荷で大電流が流れた場合にも起こりえます。この時の電流が3A以下だとしても、放熱設計がされていなければ熱を逃がすことが出来ないので、150℃を超えて焼ける可能性は充分あると思います。後、空気中であれば25A流れても焼損しないというのは間違いです。FETは放熱しないとデータシートの出力を流す前に焼損します。
また、AWG22は600Vで3Aなので、7.2Vならかなり余裕があるはずですので焼けないと思います。
故障モードについては、Webソースですが、http://www.geocities.co.jp/Technopolis/5348/fet.html#heat に書かれているように、焼損時の故障モードは各電極間ショートのようです。
となると、マイコンにモーター電源電圧や、モーターのノイズがかかりますよね。
470Ωの抵抗である程度軽減されるとは思いますが、高電圧のノイズなどは防ぎきれないのではないかと思います。

私の反論で気分を害されたのであれば申し訳ありません。これだけ余裕を持った回路なので、eneloopでタミヤギヤードを動かすなら壊れることはまずないのは分かっているのですが、汎用性を考える場合、自分としては慎重を期してTLP250等を噛ましたいと思うのです。過負荷でFETが焼けてリポが炎上して丸焦げになったロボットを見たことがあるので。

追記ですが、eneloopで使う限りは安全だとは思いますが、定格の25Aを流せるようなバッテリーを使用した場合、故障時のリスクが大きいのではないかと思います。

>私の反論で気分を害されたのであれば申し訳ありません。
いえいえ。とんでもありません。
議論したほうがお互い良いと思いますし、この回路にコメントして頂けるだけでうれしいです。

FETに25A空気中で流した場合、150℃以上になる可能性は認めます。
ただし、4Aくらいのレベルであれば(熱量=電力量=抵抗×電流×電流×時間)より計算してまず問題ないレベルだと考えます。

まず、
>AWG22は600Vで3Aなので、7.2Vならかなり余裕があるはずですので焼けないと思います。
というのはかなり間違っています。
3A流した場合、電線に掛かる電圧は決定します。オームの法則です。よって熱量は決定します。(熱量=電力量=抵抗×電流×電流×時間)よって600Vであろうと1Vであろうと許容電流は3Aに変わりはありませんし、熱量も同じです。ですから、25A流した場合電圧に関係なく炎上する可能性は十分にあります。
ちなみに600Vというのは3Aとは何の関係もなく、600Vかけた場合絶縁を保証しますよ、という意味です。

次に、
>過負荷でFETが焼けてリポが炎上して丸焦げになったロボットを見たことがあるので。
というのははっきり申し上げまして、常識はずれ(=論外)のロボット設計です。リポを使う時点で、保護回路を入れない人はリポを使ってはいけないと思います。
逆に、保護回路をきちんと入れれば、まず電池そのものが炎上することはまずないと思います。

次に、FETが故障している状態つまり貫通電流が流れつづける状態で、モータは回らないと思います。また、電池に並列に100μFの電解コンデンサをいれているので、ノイズが来てもある程度吸収されます。よってモーターの高電圧のノイズがマイコンに行く可能性はかなり低いと考えます。

ここまでをまとめると、
・モーターノイズが入ってくる可能性は低い
・電線がまず焦げる可能性が高い
・保護回路を入れていれば電池が炎上する可能性は低い

よって故障のリスクを考えるだけでフォトカプラを入れる必要はないと考えます。

ここからは余談です。

今まで京都ノードからジャパンオープンまでこのモータードライバにお世話になりましたが、故障・ショート・ノイズの影響は一度もありませんでした。

また、フォトカプラを入れると、タイムラグが大きく発生するためにPWM周波数を下げなければなりません。また、モーターの正転逆転入れ替える時などはOFFしてからONするまで時間をあけるように、モータードライバ用マイコンにプログラミングしなければなりません。つまり、モーターの応答性・及び効率が悪くなります。(効率が悪くなる理由は、ゲート電圧が中途半端な時間が多くなるためです)

また、PSoCマイコン(モータードライバ制御マイコン)を2個使っていますが、今までなかった為ないとは思いますが万が一故障したとしても300円×2個=600円の損失ですので、方位センサーやその他既製品などと比べれば安いと考えます。

以上のことはどのようにお考えですか?

※いちおう書いときますがこの回路で損害をこうむっても一切責任を負いません

>>熱量
確かに、4A程度で燃えたら困りますね
>>AWG
冷静に考えたらそりゃそうですよね。あんな細い線に1800Wも流せるはずがありませんね。
>>バッテリ
そうでした。もしかしたらあれはバッテリじゃなくてFETか何かの部品だったのかもしれません…

RCJのサッカーロボットに使うのであれば、確かに4A程度なら燃えることはないと思いますし、応答性能の話も含めて充分な設計であると納得しました。
ですが逆に、配線を太く、バッテリーを鉛蓄電池に、モーターを100Wぐらいのものにしたりすると(実は自分が今作ってるのはそんな感じの乗り物なのですが)、危ないって事ですよね。

後1つだけ、フォトカプラの応答時間ですが、モーター制御用でよく使われるTLP250は内部にICを搭載していて性能が良いので遅延時間は0.15us程度、、立ち上がり/立ち下がりについてはデジタルなので、ほぼ無いに等しいようです。これならゲートが半開になる時間は通常の制御とほぼ変わらないのではないかと思います。
遅延時間0.15usというのもArduinoのPWMは490Hzで使うなら全く問題無いレベルだと思います。いかがでしょうか?

Arduinoで制御するならいいんじゃないですか?
僕は周波数が高いほうが滑らかに動いてくれるのと騒音が少ないと思ったので、PWM5kHzにしています。また、水晶を載せるスペースがもったいないと思ったので、外部部品が全くいらないPSoCで制御しています。

しかしながら、フォトカプラを使ってもマイコンが壊れないだけであって、
>>配線を太く、バッテリーを鉛蓄電池に、モーターを100Wぐらいのものにしたり
すれば、ショートすればまあ確実に炎上するでしょう。結局マイコンも黒焦げになっているかもしれませんので、フォトカプラを付けるかどうかはどうでもよくて、いかにショートさせないようにするか(保護回路を付けたり)考えるほうがずっと重要だと思います。
だから、結局フォトカプラはいらないと思いますが・・・

確かに15kHzで制御するならフォトカプラは使えませんね。

確かに、絶縁はできても燃えたら意味ないですね…
もうちょっと考えてみます。

僕が使用しているPWMの周波数は15kHzではなく5kHzです。

保護回路を入れるのが普通だと思います。
自動車用ヒューズを入れるか、交換するのが嫌ならポリスイッチをいれるのが一般的ではないでしょうか?

見間違いました。

15Aのサーキットブレーカーがあるので、それを使いたいと思います。

何を作られるのかはよく知りませんが、がんばってください!!

これを、arduinoで、直接制御すればいいんですか?


......訳分からないこといっていたらすいませんm(._.)m

arduinoでもPSoCでもなんでもマイコンなら制御できます。
全然、訳分からないことじゃないですよ。

PSOCだったら、どうやってarduinoから制御すればいいんですか?


........何回もすいませんm(._.)m

変な質問かもしれませんが、Q1Q2とQ3Q4はなぜ違うFETを使っているんですか?

コメントして頂きありがとうございます。

以下を全部読んで、質問があればまたコメントください。
http://www.picfun.com/parttr.html
http://miqn.net/periph/63.html
http://miqn.net/periph/64.html
http://miqn.net/periph/65.html
http://miqn.net/periph/66.html
http://srd.s43.xrea.com/circuit_learning/motordrive.shtml
http://www.geocities.jp/mimiin/tips/fet/fet.html

なお、わからない言葉は
IT用語辞典
http://e-words.jp/
の左側から検索するといいと思います。

こんな初歩的な質問に答えていただきありがとうございます。
そして、分かりやすいサイトを教えて下さりありがとうございます。
おかげでよく分かりました。

はじめまして,
子供が乗れる5インチゲージの電車に興味を持ち製作を始めた者です。
12Vのモーターやモータドライバを市販品で購入し,走らせることができました。
電気については全くの素人で,電気回路も自分で勉強したいので,
マイコンを学習し,モータをPWM制御したいと考え,arduinoというマイコンを紹介して
いただき学習しております。
学習のために小さなモーターをFETで,ブリッジ回路になっているものを購入し,
4本の信号線でLOW側をPWM制御してモーターを正転逆転,速度制御できるプログラムをつくる
ことができました。
可変抵抗をアナログ入力して,入力したアナログ値を参考に
PWM制御して速度制御をすることも理解できました。

いろいろとネットを見ていて,このページに釘付けになりました。

arduinoを用いて,5インチゲージの電車を走らせることができるモータドライバを製作したいのです。
人が乗る電車なので,市販のコントローラはヒューズは20Aがついています。
電気について素人なので,ご相談させてください。
プログラムで信号をどうやって入出力するかは,理解できました。
4本の信号線でモータを制御できます。ブレーキについても,ブレーキ信号の片側にPWMを出力して,
ブレーキの効き具合が調整できるようです。

このモータドライバを

「5Vで動作するarduinoのマイコンで,このモータドライバを用いて12Vのバッテリーで,12Vのモータを制御する
ことはできますでしょうか?」


「また,24Vモータの電車もあるのですが,このモータドライバに24Vをかけて,モータを同じように制御することは
可能でしょうか?または,抵抗値などの計算が必要なのでしょうか?計算の仕方など,電気回路の知識が全くないので,
相談させてください。」

いろいろと書かせていただきましたが,できる範囲で構いませんので, ご助言をよろしくお願いします。

コメントして頂きありがとうございます。
今メキシコの世界大会で忙しいので、日本に帰ってから返信します。
それまでお待ちください。
メキシコでの生活を毎日更新してるのでよかったら読んでいってください。

もう一つ質問があります。
大電流を流せるFETが秋月で購入できます。
NchパワーMOS-FET(75V75A) PJP75N75
PchパワーMOS-FET(60V45A) 2SJ554
これを紹介していただいている回路のブリッジ回路のFET
と入れ換えたら,そのまま動作するという簡単なことでは
ないのでしょうか?
アドバイスをよろしくお願いします。

テスト期間に入ってしまったのですみませんがもうすこしお待ちください。

ご都合の良いときで構いません。よろしくお願いします。

メールで回答させて頂きました。

このモータドライバを作らせていただいたのですが、動かした時に多少発熱するのはふつうでしようか普通でしょうか?モータは普通に動いています。

コメントありがとうございます。
どの部分が発熱するかが書いていないので分かりませんが、
モーターが発熱するのは正常だと思います(正逆転を1秒間に何十回とか繰り返したら焼けるかもしれません)。
FETや電池が発熱するなら異常な可能性が高いです。

原因は、
・回路ミス
・プログラムミス
が考えられます。
特に、注意すべき点は、
このページの一番上の回路図の
IN1とIN3を同時に、もしくは、IN2とIN4を同時に、
5Vをかけると貫通電流が流れるので、
一瞬たりともそうならないように
プログラムしなければいけません。
正逆転するとき、ブレーキするときに注意です。

曖昧な質問すいませんでした。
発熱しているのはFETです。
回路はあっていると思います。他に考えられるプログラムミスってありますか?モータ(DCモータ)の種類とか関係ありますか?

他に考えられるプログラムミスはこの状況ではなんともいえませんが、
異常に発熱する→電流を流している→回路または制御のせいで電流を流している
ことは確かです。
また、大きいモーターだと電流も大きいので、
定格電流が小さいFETだと発熱は多くなります。
データシートを見てFETを選びましょう。

原因究明の抽象的な方法を2つ↓
A比較実験をしてどの部分かを確定させる
B1つづつ徹底的に調べる

Aについて
実験といってもなにか器具を使うわけではなく、
モーターを接続している時に発熱しているのか、
それとも、
モーターを接続せずにプログラムと回路を動かしても発熱するのか
を調べましたか?
今回の場合モーターを接続した時としない時の比較が実験です。
モーターを接続している時だけ発熱するのであれば、
FETの抵抗のせいか、PWMのせいだろうとなります。
他にも、
PWMをやめて正回転のみにした場合
とか、
マイコンにつながず、直接5Vにつないだ場合
など、状況に応じて比較実験しましょう。
ポイントは、1つの条件だけを変えて後は変えないこと、と、
自然現象に対して、「YES!!」か「NO!!」の二択しか答えられないような質問をするような感じの実験をすることです。

Bについて
回路はあっていると思っていても間違っているかもしれませんから、
徹底的に調べることをおすすめします。

また、全般的にですが、
発熱しているかどうかを調べるのではなく、
電池に流れている電流値をテスターで測るといいと思います。

ありがとございます。頑張ります。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1389908/39915470

この記事へのトラックバック一覧です: 25A流せるモータードライバの回路について:

« 全国大会優勝 | トップページ | 試合のビデオ »