プロジェクト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に戻るループを簡潔に表現できます。
動作確認
- スケッチをアップロードする
- ボタンを押すごとにモーターが「停止→正転→逆転→停止」と切り替われば成功
このプロジェクトで学んだこと
- 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:モーター速度制御 | 全プロジェクト一覧 | 次のプロジェクト:ステッピングモーター →

