L293DモータードライバをDCモーターとArduinoに接続: ステップバイステップガイド
ロボットやおもちゃの車を設計するつもりなら、モーターに関する知識は最重要です。これらのモーターを制御する非常にコスト効果が高く簡単な方法は、L293Dドライバモーターシールドを使用することです。さらに良いのは、Arduinoのようなマイクロコントローラとインターフェースして使用することです。
他の中でも、L293Dモータードライバはその種類で最も人気のあるチップセットの1つです。さらに、サーボ、ステッパー、DCモーターなどの電子工作での多様な応用があります。しかし、その重要な特徴は、2つの独立したDCモーターの方向と速度制御にあるようです。それがこのインストラクタブルでさらに学ぶ内容です。
1. L293Dモータードライバとは?
この16ピンチップセットは、モーター用の2チャネルHブリッジドライバです。多くの場合、その主な機能はDCモーターペアまたは単一ステッピングモーターの制御インターフェースとしての役割です。
デフォルトでは、L293Dモータードライバシールドチップセットは2つセットで提供されます。したがって、4つのDCモーターを駆動できます。その理由で、L293Dチップセットは4輪ロボットの貴重な構築資産です。
合計で、シールドは4つのHブリッジを提供します。したがって、各Hブリッジは0.6Aのモーター電流を供給します。また、74HC595シフトレジスタはセキュリティの特徴です。このレジスタの結果、デュアルL293D ICの8つの制御ピンがArduinoの4桁のピンに拡張されます。
2. L293Dモータードライバの特徴
L293DモータードライバをCNCとロボットプロジェクトで優れたコンポーネントにするいくつかの特徴:
- 適用デバイスの方向と速度レベルを制御できます。
- より興味深いことに、ドライバにより2つの同一デュアルDCモーターを動作させることが可能です。
- モーター電圧、Vs.(Vcc2)は4.5V〜36Vの間です。
- また、最大連続モーター電流は600mAです。
- 一方、最大ピークモーター電流は1.2Aです。
- Vss(Vcc1)電源電圧は4.5V〜7Vの範囲です。
- 遷移時間は5V〜24Vで最大300nsです。
- 熱活性化により、自動シャットダウンを実行可能です。
- 最後に、ICはSOIC、DIP、TSSOPパッケージで入手可能です。
3. L293Dモータードライバシールド出力ピン構成
| ピン番号 | ピン名 | ピン説明 |
|---|---|---|
| 1 | Enable 1,2 | この端子は入力ピンを活性化します:Input 1(2)とInput 2(7)。 |
| 2 | Input Pin 1 | Output 1ピンの直接制御として機能します。多くの場合、デジタル回路制御に適用可能です。 |
| 3 | Output Pin 1 | このピンはモーター1の一端に接続します。 |
| 4 | Ground | 一方の端で、このピンは回路のグラウンド(0V)に接続します。 |
| 5 | Ground | 反対側にもう1つのグラウンドピン(0V)があります。 |
| 6 | Output Pin 2 | Output Pin 1と同様、この端子はモーター1のもう一端に接続します。 |
| 7 | Input Pin 2 | Output 2ピンを直接制御します。デジタル回路制御にも適用可能です。 |
| 8 | Vs. (Vcc2) | 4.5V-36V定格で、電圧ピンに接続しモーターに供給します。 |
| 9 | Enable 3,4 | この端子は入力ピンのみを活性化します:Input 3(10)とInput 4(15)。 |
| 10 | Input 3 | Output 3ピンの直接制御を提供します。また、別のデジタル回路制御出口として機能します。 |
| 11 | Output 3 | このピンはモーター2の一端に接続します。 |
| 12 | Ground | ここで、グラウンドピンが回路のグラウンド(0V)に接続します。 |
| 13 | Ground | さらにもう1つのグラウンドピンが回路のグラウンド(0V)に接続します。 |
| 14 | Output 4 | Output 3と同様、このピンはモーター2のもう一端に接続します。 |
| 15 | Input 4 | この端で、Output 4ピンの直接制御を提供します。デジタル回路制御としても機能します。 |
| 16 | Vss (Vcc1) | 最終的に、ピンはICに供給する+5Vの外部電圧に接続します。 |
4. L293Dモータードライバの動作原理
前述の通り、L293DモータードライバはデュアルDCモーターを制御できます。したがって、このデュアルチャネルHブリッジICがどのように動作するかを理解することが重要です。
動作原理の第一段階は、Hブリッジのセットアップです。つまり、Q2/Q3とQ1/Q4と呼ばれるダーリントントランジスタの2組を使用します。それぞれの対向に、ダイオードがトランジスタのコレクタとエミッタに接続されます。その結果、モーターから発生する逆起電力がトランジスタを損傷するのを防ぎます。
したがって、トランジスタQ1/Q4がオン位置にあるとき、トランジスタQ2/Q3はオフになります。したがって、Vccからモーターを経てグラウンドへ電流が流れます。
このアクションにより、モーターが時計回り/反時計回りに回転します。要約すると、モーターの極性と電源への接続方法が回転方向を決定します。
一方、Q1/Q4トランジスタがオフのとき、Q2/Q3が自動的にオンに切り替わります。したがって、モーターを流れる電流が逆転します。したがって、この逆電流が流れると、モーターの回転方向も切り替わります。
5. L293Dモータードライバの使い方
前述の通り、L293Dモータードライバは約600mAの双方向駆動電流と4.5V-36Vの範囲を使用します。しかし、これらの機能には、この16ピンモータードライバチップをArduino Unoとともに使用することが含まれます。
したがって、DCモーターとL293DをARDUINOに接続するプロジェクトを紹介します。ここでは、DCモーターの方向と速度を制御する回路を設定するステップバイステップの手順を示します。
ステップ1: プロジェクトに必要な材料を組み立てる
- 10Kポテンショメータ 2個
- L293Dモータードライバチップセット
- 小型DCモーター 2個
- Arduino UnoまたはArduino Pro Mini
- ブレッドボード
- ジャンパーワイヤー
ステップ2: 回路のセットアップ
この回路に関わる接続はかなりシンプルです。
しかし、より明確な説明のためにビデオチュートリアルを使用して回路をセットアップします。
モーターは完全に別の電源で動作させるのが最適です。この場合、モーターに12Vを使用します。一方、5V電源でL293DとArduinoを駆動します。
注意: 外部電源はL293Dのピン8に接続します。これらの接続を作成する際は注意してください。そうしないと、モーターを損傷するリスクがあります。
ステップ3: DCモーターをプログラムするコード
これを行うために、2つの基本ステップが必要です。
AFMotor.hライブラリをインストール
まず、L293D ICとの通信媒体が必要です。そのため、AFMotor.hライブラリをインストールする必要があります。
このライブラリにより、DC、ソレノイド、ステッピングモーターを制御するコマンドを発行できます。
AFMotor.hライブラリをインストールするには、まずSketchにスクロールします。次に「ライブラリをインクルード」を見つけ、その後「ライブラリを管理」を見つけます。ライブラリマネージャがインストール済みライブラリリストを更新し、ライブラリマネージャがインデックスをダウンロードします。
その後、検索フィルターを使用して「Motor Shield」を見つけます。エントリの中から、AdafruitによるAdafruit Motor Shield Libraryを選択し、インストールをクリックします。
Arduinoコードを実行
次に、以下のArduinoコードを実行します:
#include <AFMotor.h>
AF_DCMotor motor(4);
void setup() {
// モーターの開始速度を設定 & 停止
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop() {
uint8_t i;
// モーターON
motor.run(FORWARD);
// 0から最大速度まで加速
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// 最大速度から0まで減速
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// モーター方向を変更
motor.run(BACKWARD);
// 0から最大速度まで加速
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// 最大速度から0まで減速
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// モーターOFF
motor.run(RELEASE);
delay(1000);
}
ステップ4: セットアップ完了
この段階で、あなたのDIY回路セットアップは完了です。このL293DチップとArduino Unoマイクロコントローラを使用して、任意のDCモーターデバイスの制御メカニズムを手に入れました。
6. L293D相当デュアルタイマーIC
L293Dと類似した他のICには、ULN2003、SN754410、LB1909MCがあります。
7. L293Dの応用
- 高電流LEDデバイスの駆動に役立ちます。
- また、ロボットなどのデジタル回路で動作する高電流モーターにも適用可能です。
- L293Dドライバはステッパーとモーター全般の不可欠な部分です。
- リレードライバモジュールでの使用。したがって、ラッチングリレーを可能にします。
まとめ
Arduinoを使用してDCモーターを制御する他のさまざまな方法があります。しかし、最も簡単な方法の1つは、L293DモータードライバICを使用することです。L293D ICは、2つの別々のDCモーターの速度と方向を同時に制御する利点を提供します。
結論として、このICを使用してDCモーターのセットアップとプログラミング方法を学びました。しかし、もっと挑戦的なことに挑戦したいかもしれません。この件についてのさらなるチュートリアルについては、完全なガイダンスのためにお問い合わせページからご連絡ください。
産業技術
- Arduino Unoベースの人間検知レスキューロボット:センサー統合ステップバイステップ
- ArduinoでRC受信機のPPM信号をデコードする──ステップバイステップガイド
- Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
- Arduinoで地球の質量を測定:ステップバイステップDIYガイド
- PHPベースのWebインターフェースでArduino Unoを制御する構築ガイド
- DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド
- ArduinoとPHPoC WiFiシールドで作るWeb操作XYプロッター(ステッピングモーター制御)
- Arduino Nanoで作るDIYミニオシロスコープ – ステップバイステップチュートリアル
- ArduinoとProcessingで作るリアルタイムデジタルコンパス
- ブラシ付きDCモーターの仕組み:シンプルなメカニズムと信頼性の高い動力
- DCモーターの問題を検査・診断するステップバイステップガイド