とある案件で、DCモータを駆動する実験を行っている最中。
モータドライバはロームーのBD6211を使ってみる。これは2つの入力切り替え端子にそのままPWM波形を入れると速度コントロール出来るものだ。BD6211は7Vまでの耐圧に対して、BD6231は36Vまで使用可能。VREFという端子を使えば内部PWMで速度制御ができる。
評価した結果だが、モータとPICの電源が異なる様な使い方はちょっと難しい。ブレッドボードで簡単には評価出来ず、ユニバーサル基板で評価してみたが、今回は見送り。RA-130モータ位の負荷で動かすのは、電流耐量を考慮した設計が必要。
悪い石ではないので、いつかは使ってみたい所だ。既にエレキジャックブログに記事がある。
専用基板がスイッチサイエンスから発売している。
単体では秋月から
これも今回パス。
定番の
TA7291Pを使えば作例もたくさんネットで見かけるし、無難に動かすことができるが、今回は基板を小さく作りたいので、下のテキサスDRV8830とDRV8832を候補にした。
DRV8830はI2Cタイプ、
DRV8832はポート制御タイプ。これは秋月で購入したものだが、便利な
モジュールはストロベリーリナックスで扱っている。
DRV8832はロームとモータドライバとよく似ているが、内部の方式回路がちがうので、入力端子にPWMを入れられない。代わってVrefのアナログ電圧端子があるので、ここを利用可能。
マイコンでPWMした出力をCとRの積分回路で入れてもOK。
結局、PICでPWMを作るのをやめて、
DRV8830を利用した
I2C制御に変更。なんといっても、速度制御の約64段階のVrefをI2C経由で設定出来るのが便利だ。
今回はデータ通信ができるのを検証するのが目的なので、写真の様にブレッドボードを使って作ったが、モータを動かす時はしっかりとした電源を引き回して作らないと、すぐにICのエラーセンサが働いて動かないだろう。
単純なPWM制御では負荷抵抗が変われば回転数も変わると思う。
負荷抵抗が変わっても回転数が不変な簡単な方法があれば良いと思っています。