モータドライバ(TB67H450FNG)の動作確認
動機
電子工作で、モータを動作させようとしたところ、今までさんざんお世話になっていたモータドライバであるTA7291Pが見つからず、生産終了していたことが分かりました。もう見ることが少なくなると思うと悲しいですが、今回はその後継機(の1つ?)と言われているTB67H450FNGを用いてモータを動作させてみようと思います。
モジュール作成
今回使うTB67H450FNGは秋月電子通商(akizukidenshi.com)で購入させていただきました。(通販コード:I-14967)
TB67H450FNGはチップ部品であり(図1)、そのままではユニバーサル基板で使うことができません。秋月電子通商にTA7291Pライクに使うためのモジュール化する基板もありましたが、今回は以前マルツで購入していたDIP変換基板【D016】(図2)を使用することにしました。
まずはチップ部品のはんだ付けです。親指ほどの基板に、さらに小さいTB67H450FNGの脚をはんだ付けしていきます(図3)。逆作用ピンセットでICと基板を固定することで、ずれること無くはんだ付けすることが可能です。
2つのモータドライバを搭載したモータドライバモジュールが完成しました(図4)。これを用いてモータを動作させていきます。
図3 大きさ比較 図4 作成した
モータドライバモジュール
モータドライブ回路
回路図を図5に示します。今回はマイコンとしてArduino Unoを用いて制御を行います。
TB67H450FNGは、TA7291Pと同様にIN1、IN2の組み合わせでモータの正転/逆転/停止/ブレーキが制御できます。また、Vrefの電圧値とRSピンに接続する抵抗の抵抗値によって、モータに流す電流を制御できるようです。OUTはモータの両端に接続し、VMにはTB67H450FNG本体とモータを動作させるための電圧をかけます。
IN1かIN2のどちらかをLOWにして、もう片側にPWMを流すことにより、モータの速度制御が可能となるそうです。
モータを動作させるための電流がArduinoから出力できるか分からなかったため、電源は別回路としてVMに5Vを給電することとします。
データシートを見ると、TB67H450FNGの主な仕様は以下のようになっていたので、電圧値や電流値が超えないようにしてください。
- ロジック入力端子入力電圧(HIGH):2.0~5.5V
- モータ電源(VM)定格電圧:50V
- モータ出力電流(Iout)定格電流:3.5A
- Vref端子電圧:0~5.5V(4V以内が望ましい)
VrefとRSによる電流Ioutの上限値Iは以下の式で計算されます。
$$I_{out}(Max) = V_{ref}(gain) * \frac{V_{ref}(V)}{ RSS(Ω)}$$
ここで、$V_{ref}(gain)$は通常$0.1$だそうです。
今回は、$V_{ref}(V)$を$3.8V$、$RSS(Ω)$を$1Ω$として、電流の上限値$I_{out}(Max) = 0.38A$にしようと思います。
プログラム
プログラムは以下の通りです。Arduinoの11ピンでPWM出力を行い、モータの回転速度が増減を繰り返します。
const int IN1 = 5;
const int IN2 = 6;
void setup(){
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
}
void loop(){
for(int i = 100; i < 255; i++){
analogWrite(IN1, 255 - i);
delay(10);
}
for(int i = 100; i < 255; i++){
analogWrite(IN1, i);
delay(10);
}
}
動作確認
実際に動作させてみました(動画1)。モータの回転速度が変化していることが分かります。これで、TA7291Pと同じようにモータを制御することが可能になりました。(動画は別の回路を検証していた時の動画になっていました。後日修正します…。)
まとめ
TB67H450FNGを用いて、TA7291Pと同じようにモータの回転を制御することができました。