L293Dモータードライバー

モータードライバーは、通常、自律型ロボットのモーターを制御するために使用される集積回路チップです。 モータードライバーは、Arduinoとモーター間のインターフェイスとして機能します。 最も一般的に使用されるモータードライバーICは、L293D、L293NEなどのL293シリーズのものです。これらのICは、2つのDCモーターを同時に制御するように設計されています。 L293Dは2つのHブリッジで構成されています。 Hブリッジは、低電流定格のモーターを制御するための最も単純な回路です。 モータドライバICをL293Dのみと呼びます。 L293Dには16ピンがあります。

ステップ1:部品リスト

1)L293D IC

2)4 1マイクロファラッドコンデンサ

3)6ヘッダー雄ピン

4)12ボルトのバッテリーまたは電源

5)ワイヤまたは雌ソケット

6)2つのモーター

7)Arduino(任意)ドライバーのテスト

8)arduino IDEを搭載したコンピューター

9)はんだごて、はんだ付けワイヤなどのその他の問題

ステップ2:回路図と作業

L293Dは16ピンICで、各側に8つのピンがあり、モーターの制御専用です。 各モーターには、2つのINPUTピン、2つのOUTPUTピン、1つのENABLEピンがあります。 L293Dは2つのHブリッジで構成されています。 Hブリッジは、低電流定格のモーターを制御するための最も単純な回路です。

ピン番号-ピン特性

  • 1-1-2を有効にします。これがHIGHの場合、ICの左側の部分が機能し、低い場合は左側の部分が機能しません。
  • 2-入力1。このピンがHIGHの場合、出力1に電流が流れます。
  • 3-出力1、このピンはモーターの端子の1つに接続する必要があります
  • 4, 5-GND、グランドピン
  • 6-出力2、このピンはモーターの端子の1つに接続する必要があります
  • 7-入力2、このピンがHIGHの場合、出力2に電流が流れます
  • 8-VCC2、これはモーターに供給される電圧です。
  • 16-VCC1、これはICへの電源です。 したがって、このピンには5 Vを供給する必要があります
  • 15-入力4、このピンがHIGHの場合、出力4に電流が流れます
  • 14-出力4、このピンはモーターの端子の1つに接続する必要があります
  • 13, 12-GND、接地ピン
  • 11-出力3、このピンはモーターの端子の1つに接続する必要があります
  • 10-入力3、このピンがHIGHの場合、出力3に電流が流れます
  • 9-3-4を有効にします。これがHIGHの場合、ICの右側の部分が機能し、低い場合は右側の部分が機能しません。

ICに4つのグランドがあるのはなぜですか?

モータードライバーICは大電流を処理します。 非常に多くの電流が流れるため、ICは加熱されます。 そのため、発熱を抑えるためにヒートシンクが必要です。 したがって、4つの接地ピンがあります。 PCBのピンをはんだ付けすると、地面の間に熱を放出できる巨大な金属領域ができます。

コンデンサーを選ぶ理由

DCモーターは誘導負荷です。 そのため、電圧が供給されると逆起電力が発生します。 モーターの使用中に電圧が変動する可能性があります。モーターが特定の方向に移動しているときに突然逆転した場合です。 この時点で、電圧の変動は非常に大きく、ICを損傷する可能性があります。 したがって、電流の極端な変動を抑えるのに役立つ4つのコンデンサを使用します。

ステップ3:動作メカニズムとArduinoコード

入力と有効化の値に応じて、モーターは時計回りまたは反時計回りに最大速度(有効化がHIGHの場合)または低速(有効化がPWMで提供される場合)で回転します。がHIGHで、入力1と入力2がそれぞれHIGHとLOWの場合、モーターは時計回りに動きます。

テストに使用したArduinoコード:-

// DCモーターのテスト
// L293D //ピンを定義//モーターA int enableA = 2; int MotorA1 = 4; int MotorA2 = 5; // Motor B int enableB = 3; int MotorB1 = 6; int MotorB2 = 7; void setup(){Serial.begin(9600); //ピンモードを設定pinMode(enableA、OUTPUT); pinMode(MotorA1、OUTPUT); pinMode(MotorA2、OUTPUT); pinMode(enableB、OUTPUT); pinMode(MotorB1、出力); pinMode(MotorB2、OUTPUT); } void loop(){//モーターAを有効にしますSerial.println( "Enabling Motors"); digitalWrite(enableA、HIGH); digitalWrite(enableB、HIGH); 遅延(1000); // Serial.println( "Motion Forward");を実行します。 digitalWrite(MotorA1、LOW); digitalWrite(MotorA2、HIGH); digitalWrite(MotorB1、LOW); digitalWrite(MotorB2、HIGH); 遅延(3000); Serial.println(「モーションバックワード」); digitalWrite(MotorA1、HIGH); digitalWrite(MotorA2、LOW); digitalWrite(MotorB1、HIGH); digitalWrite(MotorB2、LOW); 遅延(3000); Serial.println(「モーターの停止」); // digitalWriteを停止(enableA、LOW); digitalWrite(enableB、LOW); 遅延(3000); }

関連記事