モータードライバー基板を作る


ICの切り欠きを左にして下側のピンが1番ピンになります。そこから左回りに番号が振られます。このICは片側しかありませんが、普通は両側にあります。
  1. GNDはその回路の全ての基準電圧であるゼロボルトを示すところにつなげます。
  2. ここではVsとVccは同じ電圧であるとして作ります。Vsはモーターの電源、VccはこのICの電源です。
  3. Vrefは参照電圧で、これによって出力電圧を変えることができますが、ここでは10kΩ程度の抵抗でVccにつなぎます。
  4. IN1とIN2はマイクロコントローラ(CPU)からの入力制御信号です。
  5. OUT1とOUT2は直流モーターにつなぎます。
  6. これ一つで、一つのモーターを担当しますから、2つのモーターを駆動するには同じ回路がもう一つ必要になります。
  7. 電源は、電池を直接つなぐと、電圧低下をおこした時にモーターのスピードが正しくコントロールされなくなるので、5Vの定電圧回路を間に入れます。従って、入力電圧は6V程度の電池をつなぎます。

CPU基板の下に設置する予定なので、CPUと同じ大きさに基板を切り、3mmの穴をあける。

レイアウトを考える。
ICを寝かせるとして、電源ピン、GNDピンなどは同じだから近くで配線するのが簡単である。従って、1番ピンはもう一つのICの1番ピンに近くなるように、写真のように配置する。

コネクタの配置も考える。
  • 制御信号4本
  • 入力電源2本
  • モーター信号4本
  • CPUへの供給電源2本
コネクタは付けなければいけないということではない。
コネクタを付ける場合には、回路が正常に動作しているのを確認してからにすること。

裏の配線

コネクタの配線をして完成

モーターをどのように回しているか
使っているモーターは直流モーターです。
乾電池を一個つなげれば、回転します。二個直列につなげれば高速回転します。三個直列につなげると、さらに高速回転しますが、変な臭いがし始めて壊れるかもしれません。
 今度は乾電池一個よりも遅く回転させるにはどうしたら良いでしょうか?
例えば半分のスピードにするために半分の電圧にすることを考えます。
電圧を下げるために抵抗を直列につなぐと考える人もいるでしょう。使用条件に依存しますが、0.5A流れるとして半分の電圧がモーターにかかるとすると、
2R = 1.5(V)/0.5(A) = 3、 従ってR=1.5Ω、抵抗で消費される電力 P=IV = 0.5*0.75=0.375、従って1.5Ωで1/2Wの抵抗が必要になります。
1/4のスピードにするには4R=3になり、R=0.75Ωとなります。
では、連続的にスピードを変えるにはどうするかというと、消費電力が大きく、抵抗値の小さい可変抵抗が必要になります。そんなの売っていません。さらにこれをコンピュータでコントロールするには? と考えるとだんだんと複雑になります。従って、ここでこの延長を考えるのをやめます。

モーターを乾電池1個つなぐ場合を考えます。
  1. 10秒間だけモーターに電流を流します。それなりに回ります。
  2. 次に5秒間だけモーターに電流を流し、後の5秒は流しません。それなりに回り、止まります。
  3. 1秒電流を流し、1秒電流を止めるを繰り返し、10秒間続ける。回ったり止まったりする。
  4. 1/10秒電流を流し、1/10秒電流を止めるを繰り返し、10秒間続ける。動いたり止まったりする暇が無いので、以前より遅く回る。
  5. 30/100秒電流を流し、70/100秒電流を止めるを、繰り返すとさらに遅く回る。
  6. 10/100秒電流を流し、90/100秒電流を止めるを、繰り返すとさらに遅く回る。
  7. 0秒電流を流し、1秒電流を止めるを繰り返すとモーターは止まる。
つまり、電源電圧は同じでも、電流を流す時間でスピードをコントロールすることができることが分かります。これがパルス幅変調(PWM)でモーターのスピードを制御する原理です。
実際には、逆回転ができないと意味が無いので、TA7291PというICはこれができるHブリッジ回路を採用しています。



モータードライバーTA7291Pの機能は次の表のようになります。
CW:ClockWise時計回り
CCW:Counter ClockWise反時計回り