MOSFETとマイコン (3)  DCモータを動かす その1

スイッチング素子はPWM制御に向いている

 電子工作に利用できるモータには、

  • ブラシ付きDCモータ
  • ブラシレスDCモータ
  • ステッピング・モータ

があります。単にDCモータというときにはブラシ付きDCモータです。オーディオ機器のトレイの開閉やミニ四駆に使われています。日本の家電やラジコン飛行機などはブラシレスDCモータが主流です。

 単に回るだけでは実感がないので、動く車を入手しました。

  タミヤ 楽しい工作シリーズ No.112 バギー工作基本セット (70112)

最初からHブリッジ

 マイコンからLEDを駆動するのにMOS FETを使いました。同様にモータも駆動できます。モータは回転方向がCWCCWの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

Micro:bitをArduino IDE で開発

 実験ではマブチモーターの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   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です。データシートの動作説明によると、電流の向きはデッド・タイムと同じです。したがって、モータには何ら電流が流れない時間といえます。

 これらの実験から、モータの回転方向回転数を制御できることがわかりました。

 

コラム タミヤのモータを使った楽しい工作シリーズの組み立て

 

 バギー工作基本セット以外に、こちらのページにも紹介されているように、モータを使った製品がたくさん販売されています。価格も千円台が多いです。安価ですが、パーツの数は多いです。全部で六つのセクションに分けて組み立てが説明されています。

① 逆転スイッチ

② 電池ボックス

③ ギア・ボックス

④ モータの配線 はんだ付けしてしまいました。

⑤ モータの取り付け

⑥タイヤの取り付け 完成です。

MOS FETとマイコン

(1) 複数のLEDを点灯

(2) LEDの輝度を変化

(3) DCモータを動かす その1

(4) DCモータを動かす その2