プロジェクト18:モーター回転方向制御

プロジェクト18:モータードライバーで回転方向の制御

このプロジェクトで学ぶこと: L293DのHブリッジ回路を使ってDCモーターの正転・逆転・停止を制御する方法を学びます。前プロジェクトの速度制御と組み合わせて、より高度なモーター制御を実現します。


完成イメージ

[ボタンを押すごとに正転→停止→逆転→停止と切り替わるDCモーターの動画を挿入]


必要な部品

部品名 数量
Arduino Uno R3 1
L293D モータードライバーIC 1
DCモーター 1
タクトスイッチ 1
抵抗 10kΩ 1
コンデンサ 100μF 1
ブレッドボード 1
ジャンパー線 多数

回路図と配線

[回路図画像を挿入]

配線手順

前プロジェクトの配線に加えて:

  • L293Dの Input2(7番ピン) を固定GNDではなく Arduino 6番ピン に接続する
  • ボタンを 2番ピン とプルダウン抵抗で接続する
L293Dピン 接続先
Enable1(1番) 5V(常時オン)
Input1(2番) Arduino 7番ピン
Input2(7番) Arduino 6番ピン

Arduinoスケッチ(プログラム)

// ボタンでモーター正転・停止・逆転を切り替える

const int IN1_PIN    = 7;
const int IN2_PIN    = 6;
const int BUTTON_PIN = 2;

// 状態: 0=停止, 1=正転, 2=逆転
int motorState = 0;
bool lastButtonState = LOW;

void setMotor(int state) {
  switch (state) {
    case 0:  // 停止
      digitalWrite(IN1_PIN, LOW);
      digitalWrite(IN2_PIN, LOW);
      break;
    case 1:  // 正転
      digitalWrite(IN1_PIN, HIGH);
      digitalWrite(IN2_PIN, LOW);
      break;
    case 2:  // 逆転
      digitalWrite(IN1_PIN, LOW);
      digitalWrite(IN2_PIN, HIGH);
      break;
  }
}

void setup() {
  pinMode(IN1_PIN, OUTPUT);
  pinMode(IN2_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT);
  setMotor(0);
}

void loop() {
  bool buttonState = digitalRead(BUTTON_PIN);

  if (buttonState == HIGH && lastButtonState == LOW) {
    motorState = (motorState + 1) % 3;  // 0→1→2→0→...
    setMotor(motorState);
  }
  lastButtonState = buttonState;
}

コードのポイント解説

Hブリッジ回路の方向制御 L293Dの内部にはHブリッジ回路があります。IN1=HIGH・IN2=LOWで電流がA→B方向に流れて正転、IN1=LOW・IN2=HIGHで電流がB→A方向に流れて逆転します。IN1=IN2(同じ値)では電流が流れず、モーターはブレーキまたは自由回転します。

switch/case 複数の条件分岐を扱うときにif/else ifより読みやすく書けます。motorStateの値によって実行する処理を選択します。

剰余演算 % 3 (motorState + 1) % 3で値が0→1→2→0と循環します。ボタンを押すたびに状態を次に進め、3になったら0に戻るループを簡潔に表現できます。


動作確認

  1. スケッチをアップロードする
  2. ボタンを押すごとにモーターが「停止→正転→逆転→停止」と切り替われば成功

このプロジェクトで学んだこと

  • Hブリッジ回路: IN1・IN2の組み合わせで電流方向を切り替える仕組みを理解しました
  • switch/case 複数状態の分岐処理をすっきり書く方法を習得しました
  • 状態管理: 変数で機器の状態を保持してボタンで切り替えるパターンを学びました

次のプロジェクト「ステッピングモーター」では、より精密な角度制御ができるモーターを扱います。


深掘り:技術の背景と社会への広がり

Hブリッジ回路の発明とアナログ電子工学の遺産

Hブリッジ回路は1950年代の電力エレクトロニクスで確立された古典的な回路設計です。4つのスイッチング素子(現在ではMOSFETやIGBT)をH字型に配置し、電流方向を切り替えることでモーターの正逆転を制御します。現代のEVのインバーター回路も基本的にはHブリッジを三相交流に拡張したものであり、テスラのモーター制御ユニットも同じ原理の上に成り立っています。L293DというICにこの原理が1チップに収まっていることは、50年の技術進歩の結晶です。

ロボットアームと物流自動化の最前線

正逆転制御は産業ロボットの関節制御に不可欠な技術です。アマゾンの物流倉庫では数千台の自走ロボットがモーターの正逆転でX・Y方向に移動し、商品の仕分けを24時間自動化しています。2023年時点でアマゾンは75万台以上のロボットを稼働させており、そのすべての移動機構にHブリッジ制御のモーターが使われています。あなたが今日制御したDCモーターの回転方向制御は、グローバルなサプライチェーンを支えるテクノロジーの基礎と直結しています。


プロジェクト17:モーター速度制御全プロジェクト一覧 | 次のプロジェクト:ステッピングモーター →