= BD62xxFモータードライバ = [[Image(1.jpg, 500px)]] [http://www.rohm.co.jp/products/databook/motor/pdf/bd621x_series-j.pdf ロームのBD6211F]を使用した、Hブリッジモジュールです。 * ブラシ付きモーター用 * 正転、逆転、ブレーキ、空走 * 無段階変速。入力はPWMまたはアナログ電圧。 * 電源電圧3~5.5V。 * ドライブ電流最大1A(定格)。 計画からずいぶん時間が経ってしまいました。 実は、基板屋にEagleの.brdファイルで依頼したら、Gerberへの変換ミスでシルクがぐちゃぐちゃになり、作り直してもらったのです。 そんなことがあるとは思いもしませんでした。 製造前にPDFで確認したときは大丈夫だったんですけど。 今回のロットは、なんと'''手付け'''です。 そのうち、「なんちゃってリフロー」で製造しますよ!。 良い点: * 小型 * (たぶん)安い * ブレーキ、空走機能付き * 無段階変速(PWMおよびVREFの二通り) * この大きさで1Aまでドライブできる(定格) * VREFは内部でPWMに変換して動作しているので、損失=熱が少ない。 * 保護回路いろいろ(過電流、温度、過電圧、低電圧) 悪い点: * 信号系と負荷系の電源が分離されていない * 放熱が悪いので、実際には1A連続は厳しいかもしれない。 モーターの定格電圧が信号系(マイコン)の電源電圧よりも低い場合は困ってしまいます。 モーターによっては、PWMで一定のデューティよりも上げないように注意すれば大丈夫な場合があります。 さて、お値段どうしましょう。 == 使い方 == * VCC -- 電源3~5.5Vを接続 * GND -- グラウンド * OUT1 -- モーター接続端子(出力) * OUT2 -- モーター接続端子(出力) ここまでは自明でしょう。 * FIN -- 制御端子(入力) * RIN -- 制御端子(入力) * VREF -- 制御端子(入力)出荷時は基板裏側でVCCに接続してあります。 使い方が2種類あります。 PWM制御方式:: * FINとRINにPWM信号を与え、回転方向および回転速度を制御する。 * VREFにはVCCを与えておく。出荷時状態なら、VCCに接続してあります。 VREFアナログ制御方式:: * FINとRINには論理1または0のデジタル信号を与えて回転方向を制御する。 * VREFに与えたアナログ電圧で、回転速度を制御する。基板裏のJ1のパターンをカッターで切り離して下さい。 PWM制御方式の場合、 || FIN || RIN || 動作 || || 論理0 || 論理0 || 空転 || || PWM信号 || 論理0 || 正転 || || 論理0 || PWM信号 || 逆転 || || 論理1 || 論理1 || ブレーキ || PWMの周波数は20kHz~100kHzです。 VREFアナログ制御方式の場合、 || FIN || RIN || 動作 || || 論理0 || 論理0 || 空転 || || 論理1 || 論理0 || 正転 || || 論理0 || 論理1 || 逆転 || || 論理1 || 論理1 || ブレーキ || FIN、RINは、電源電圧にかかわらず2V以上で「論理1」です。 このモジュールを5Vで動かしながら、3.3Vのマイコンにつなげることもできます。 == スケッチの例 == マブチのFA-130を回してみました。 {{{ #!c int FIN = 5; int RIN = 6; int OFFSET = 1.0 * 256 / 5; int MAX = 1.5 * 256 / 5 - OFFSET; int degree = 0; void setup() { Serial.begin(9600); pinMode(FIN, OUTPUT); pinMode(RIN, OUTPUT); } void loop() { delay(100); degree += 1; degree %= 360; long v = int(sin(degree * 2 * PI / 360) * MAX); Serial.println(v); if (v > 0) { analogWrite(FIN, v + OFFSET); analogWrite(RIN, 0); } else if (v < 0) { analogWrite(FIN, 0); analogWrite(RIN, OFFSET - v); } else { analogWrite(FIN, 255); analogWrite(RIN, 255); } } }}} ''(2009/4/10 - sgk)''