モータドライバでDCモータを制御しようとしました。
ただ電池直接ではモータが回転するのに、ドライバIC経由だと動かない現象でした。
電圧・波形を調査すると、よくあるミスだった旨を紹介します。
モータドライバのICが動かない…故障?と勘違いした件
モータドライバIC経由でDCモータを駆動しようとしました。
しかしモータは全く動かず、テスターで電圧を測定しても異常値となっていました。
(ただし電池をモータに直接つなぐと、電圧も問題なく正常に動く状況)
原因はモータ起動時の電圧降下により、IC電源の電圧が不足していた様子です。
オシロスコープ含めて調査した旨を紹介します。
実際にテストした内容に関しては下記動画でも紹介しています。
モータドライバの故障と勘違いしたテスト
使用したモータドライバICは「DRV8833」です。
「ステッピングモーター」「DCモータ」を制御できます。
ICとしては2.7V~10.8Vまで幅広い電圧動作に対応しています。
Amazonで5個入りのDRV8833の評価ボードを購入しました。
今回はDCモータを制御を制御しています。
IC電源は乾電池2本(DC3.0V)
ドライバICの使用電圧が広いということで、まずは乾電池2本でテストします。
実際の配線は下記形です。
ドライバICの制御はラズパイから実施しています。
ラズパイにも3.3Vはあるのですが、さすがにDCモータの数百mAは厳しそうです。
そのため電池BOX(単三電池x2本)から別電源を用意しています。
実際のPythonのプログラムなどは下記記事で紹介しています。
モータドライバでDCの正転・反転を試してみる(DRV8833編)
モータ単体では正常に動作
モータ単体と電池を直結すると、モータ回転することを確認しています。
実際に動かしているアクチュエータは下記のTAMIYAのロボットセットです。
ラズパイや他の評価ボードから、制御できるアクチュエータ用に改造しています。
実際テスターで電圧を測定すると、2.9V程度でした。
乾電池2本の実電圧だと3.2Vぐらいになるのですが、この時点でも電圧降下が発生しています。
モータ未接続のドライバ出力電圧はOK
最初にモータ未接続の状態で、ドライバICが正常に出力できているのかの確認しました。
ラズパイのPythonのプログラムが正しくできているか含めてのテストです。
モータドライバ出力端子から「-3V」→「+3V」と正転・反転の制御が出来ていました。
モータ接続すると異音と電圧NG
しかしモータに接続して実際に動かそうとするとNGでした。
モータ回らず、モータからは動かそうとする高い音が聞こえるだけでした。
テスターで電圧値も見ると約70mVと異常状態でした。
他にもギアボックス無しでのモータ単体、PWM制御を入れたりなども試しました。
ただ、モータが回ることはなかったです。
オシロスコープで原因を調査してみる
オシロスコープでドライバICとモータの電圧を調査してみます。
モータ動作前の電圧は正常です。
ICへの電圧が安定して3V以上あり、ICの使用動作範囲内です。(2.7~10.8V)
但し実際にモータ起動時には、大きな電流が流れて電圧降下が発生していました。
オシロでも2.8Vまで落ちていることを確認しました。
おそらくICの下限電圧に引っかかって、モータドライバICの動作が停止している様子でした。
ドライバICの電圧が広いということで、ギリギリの3Vで使っていたのが敗因でした。
対策は色々あるが…
モータ起動時に電圧降下が発生しているので、色々な対策が考えられます。
- ドライバIC電源へのコンデンサを増やして、電源の応答性を良くする
- 電圧降下が発生しても良いように、電圧を高くする
- モータの突入を制限するために、制限抵抗・ソフトスタートなどの対応
まず原因の予想あっているかの確認のため、今回は電圧を上げて確認してみます。
外部電源を乾電池2本→3本に変更しています。
(使用モータが3V定格のため非常に良くないですが、あくまで趣味のため試しています)
電圧を上げると正常動作を確認できました。
多少、電源降下してもIC電圧としても問題なくなった様子です。
まとめ
モータドライバでDCモータを制御しようとしました。
ただ電池直接ではモータが回転するのに、ドライバIC経由だと動かない現象でした。
電圧・波形を調査すると、よくある電圧降下のミスだった旨の紹介でした。
よろしければ、皆様もモータドライバでDCモータを制御してみてください。
下記記事でラズパイのPythonのプログラム含めて紹介しています。
モータドライバでDCの正転・反転を試してみる(DRV8833編)
コメント