モータを制御したい場合、モータドライバICを使うと小型で簡単に実装可能です。
今回はL293Dを例に挙げてモータドライバICの使い方を学んでみます。
前回はこちら
モータドライバICの概要
DCモータの駆動電流
DCモータを駆動するためには、LED点灯(約20 mA)とは桁違いの電流が必要です。例えば、FA-130RAモータの場合、適正負荷時には500 mAの電流が必要となります。また、回転数が低い状態(始動、ロック、高負荷)では、非常に大きな電流が流れます。FA-130RAモータでは、始動時やロック状態、高負荷時には最大で2200 mAの電流が流れます。
ロジックICやマイコンによる駆動の限界
ロジックICやマイコンの出力は、このような大きな電流を直接駆動するには不十分です。通常、ロジックICやマイコンは数十mA程度の電流しか供給できません。そのため、モータを駆動させるためには、トランジスタやFETを使用した回路が必要となります。
Hブリッジ回路
モータの回転を制御するためには、Hブリッジ回路が一般的に使われます。Hブリッジ回路は、トランジスタやFETを使用して、モータの両端にかかる電圧を制御し、モータの回転方向や速度を調整します。
詳しくは以下の記事で解説しています。
モータドライバIC
Hブリッジ回路を簡単に利用するために、FETを複数内蔵したHブリッジ回路を1個のIC内に組み込んだ「モータドライバIC」が使用されます。モータドライバICは、以下のような特徴があります:
- 簡単な制御:マイコンからの制御信号でモータの回転方向や速度を簡単に制御できます。
- 高電流対応:マイコンと比べて大きな駆動電流を供給する能力があります。
- 保護機能:過電流保護や過熱保護などの機能を持つものが多く、モータや回路の保護に役立ちます。
利点としては構成部品が少なくなり、簡単にモータ駆動回路を構成することが出来ます。
一方で大きな電流を扱えるものは少なく、大型のモータを駆動する事は難しいです。
L293D
今回の実験ではL293DというモータドライバICを使ってみます。
クワッド ハーフ H ドライバ L283D https://www.ti.com/jp/lit/gpn/l293d
L293D の仕様を以下の表にまとめました。
項目 | 仕様 |
---|---|
動作電圧範囲 | 4.5 V ~ 36 V |
入力ロジック電源 | 分離(Separate Input-Logic Supply) |
内部ESD保護 | 有 |
高ノイズ耐性入力 | 有 |
出力電流(チャンネルあたり) | 1 A(L293Dの場合は600 mA) |
ピーク出力電流(チャンネルあたり) | 2 A(L293Dの場合は1.2 A) |
誘導性過渡電圧抑制用クランプダイオード | 有(L293D) |
このモータドライバICは最大2個のモータを正転と逆転制御を行うことが出来ます。
16番ポートには中の制御ICを駆動するための電圧、5Vを印加します。
8番ポートにはモータを駆動させるための電圧を印加します。
下記の図の通り、3番ポートと6番ポートにモータをつなぎます。
ENポート(1番)にPWM信号を入力すると、モータの回転数を制御できます。
2番ポートと7番ポートの入力により回転方向を制御します。
2番がHIGH、7番がLOWの場合は正転、2番ポートがLOW、7番ポートがHIGHの場合は逆転です。
Arduinoに下記の通り接続します。
モータは回転を停止させる信号を送ると、しばらくは慣性の法則で回り続けます。
その際、モータから逆起電力により回路へ電流が逆流して流れます。
その電流から破壊されることを防ぐために、ダイオードをはさみ、逆起電流をGNDとショートさせることで回路を保護しています。
制御IC用の電源5VはArduinoから取り、モータ用の電源は安定化電源等外部電源で供給します。
その際、GNDは共通化させます。
PWMを100で正転、逆転、停止を1秒おきに繰り返すプログラムは以下の通りになります。
#define EN1 11
#define M1A 10
#define M1B 9
void setup() {
pinMode(M1A, OUTPUT);
pinMode(M1B, OUTPUT);
analogWrite(EN1, 100);
}
void loop()
{
digitalWrite(M1A, HIGH);
digitalWrite(M1B, LOW);
delay(1000);
digitalWrite(M1A, LOW);
digitalWrite(M1B, HIGH);
delay(1000);
digitalWrite(M1A, LOW);
digitalWrite(M1B, LOW);
delay(1000);
}
モータ制御 実験⑤
Arduino、L293D、エンコーダ付きギアドモータを使用して、モータの駆動制御を行なう装置を構成せよ。
シリアルモニタからA,B,Cのコマンドを送り,正転,逆転,停止とモータの回転が変化する。
それぞれのコマンドを送った際のエンコーダの波形を読取り、レポートで報告してください。
モータ制御 実験⑥
Arduino、L293D、エンコーダ付きギアドモータ,半固定抵抗を使用して、モータの回転数が変化する装置を構成せよ。
またPWMの値によりどのように回転数が変化するか計測せよ。
横軸PWM、縦軸回転数のグラフを作成,モータの出力PWMもオシロスコープで記録、報告してください。
次回はこちら