MOSFETとマイコン (3) DCモータを動かす その1
■スイッチング素子はPWM制御に向いている
電子工作に利用できるモータには、
- ブラシ付きDCモータ
- ブラシレスDCモータ
- ステッピング・モータ
があります。単にDCモータというときにはブラシ付きDCモータです。オーディオ機器のトレイの開閉やミニ四駆に使われています。日本の家電やラジコン飛行機などはブラシレスDCモータが主流です。
単に回るだけでは実感がないので、動く車を入手しました。
タミヤ 楽しい工作シリーズ No.112 バギー工作基本セット (70112)
●最初からHブリッジ
マイコンからLEDを駆動するのにMOS FETを使いました。同様にモータも駆動できます。モータは回転方向がCWとCCWの2種類あります。単純に電源の±を逆にすると、回転方向が変わります。
- CW Clock Wise 時計方向の回転
- CCW Counter Clock Wise 反時計方向の回転
- ストップ 止まる
これを外部から制御できるのがHブリッジです。FETを四つつなぐだけですが、ON/OFFタイミングが不適切だと貫通電流が流れ、焼失します。
二組のFETをONすることで、電流の流れる方向を制御できます。
このHブリッジ駆動回路の手ごろなICにTB6612があります。利用しやすいようにボード化されたモジュールを秋月電子通商から入手しました。
モジュールには、モータとモータの電源をつなぐ青色のターミナルが2個あり、横に連結用のスリットがあります。連結してプリント基板に挿し込み、はんだ付けします。一つを先にはんだ付けしてしまうと、連結を後からはできません。
付属のピンヘッダは細ピンタイプです。ブレッドボードのジャンパ・ケーブルを挿すとするっと抜けてしまうので、普通の太さのヘッダピンを利用しました。すこしきつめですが、穴に入ります。細ピンは、ブレッドボードに挿して使うときは優しいテンションになります。
●TB6612モジュールのスペック
- 2チャネル
- 入力は二つで、その組み合わせでCW、CCW、Stopが制御できる
- PWM入力がある
- モータの電源は最大15V
- 動作電圧は2.7~5.5V
実験ではマブチモーターのFA-130を使います。バギーの搭載されているモータと外観はほとんど同じ大きさです。次のように接続しました。
/STBY端子はIC内部でプルダウンされているので、LOW状態=スタンバイです。3Vへつなぐと出力が有効になります。
モータ用電源は、3.3V、1AのAC-DCアダプタを使い、直列に電流制限用にポリスイッチを入れました。
setup()で、モジュールを制御する三つのポートの初期設定をし、ストップ状態にします。データシートに動作を説明している制御ファンクション表に従い、
- IN1=LOW、IN2=HIGH‥‥CCW
- IN1=HIGH、IN2=LOW‥‥CW
を切り替えるスケッチを動かします。
◆制御ファンクション
入力 | 出力 | |||||
---|---|---|---|---|---|---|
IN1 | IN2 | PWM | /STBY | OUT1 | OUT2 | モード |
H | H | H/L | H | L | L | ショート・ブレーキ |
L | H | H | H | L | H | CCW |
L | H | L | L | ショート・ブレーキ | ||
H | L | H | H | H | L | CW |
L | L | L | L | ショート・ブレーキ | ||
L | L | H | H | OFF (ハイ・インピーダンス) |
ストップ | |
H/L | H/L | H/L | L | OFF (ハイ・インピーダンス) |
スタンバイ |
#define IN1 7
#define IN2 6
#define PWM 5
void setup() {
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(PWM,OUTPUT);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(PWM,HIGH);//Stop Mode
}
void loop() {
digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);
delay(1000);
digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);
delay(1000);
}
期待通り、モータは1秒ごとに回転方向を変えました。動作中の端子をオシロスコープで見ると、強烈にノイズが発生しています。ブラシからの発生です。
モータの端子間に0.1uF/50Vの積層セラミック・コンデンサをはんだ付けしました。劇的にノイズが減少します。
実験中の様子です。
つぎに、PWM信号入れます。スケッチではloopの最初に挿入しました。
#define IN1 7
#define IN2 6
#define PWM 5
void setup() {
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(PWM,OUTPUT);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(PWM,HIGH);//Stop Mode
}
void loop() {
analogWrite(PWM, 50);
digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);
delay(2000);
digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);
delay(2000);
}
デューティ比を決めるパラメータを5種類変化させて、オシロスコープで観測しました。
◆analogWrite(PWM, 50);
ONしている時間は約20%です。
◆analogWrite(PWM, 100);
◆analogWrite(PWM, 150);
◆analogWrite(PWM, 200);
◆analogWrite(PWM, 250);
PWMのパラメータの数値を大きくするほど、回転数が上がります。最小値は約15です。それ以下だと回り始めません。
前回のLEDを駆動するときの実験で、PWM出力はどのポートでもOKでした。
制御ファンクション表によると、PWMがLOWのときは「ショート・ブレーキ」というモードです。ストップ・モードのときはO1/O2はハイ・インピーダンスですが、ショート・ブレーキのときは共にLOWです。データシートの動作説明によると、電流の向きはデッド・タイムと同じです。したがって、モータには何ら電流が流れない時間といえます。
これらの実験から、モータの回転方向、回転数を制御できることがわかりました。
コラム タミヤのモータを使った楽しい工作シリーズの組み立て
バギー工作基本セット以外に、こちらのページにも紹介されているように、モータを使った製品がたくさん販売されています。価格も千円台が多いです。安価ですが、パーツの数は多いです。全部で六つのセクションに分けて組み立てが説明されています。
① 逆転スイッチ
② 電池ボックス
③ ギア・ボックス
④ モータの配線 はんだ付けしてしまいました。
⑤ モータの取り付け
⑥タイヤの取り付け 完成です。