ESP32 チュートリアル 15/55 - ESP32 L293D を用いた DC モーター速度制御 | SunFounder の ESP32 IoT 学習キット

ESP32 チュートリアル 15/55 - ESP32 L293D を用いた DC モーター速度制御 | SunFounder の ESP32 IoT 学習キット

ESP32チュートリアル 15/55 - ESP32 L293DによるDCモーター速度制御 | SunFounderのESP32 IoT学習キット

ESP32を使ってDCモーターを制御するのは daunting に思えるかもしれませんが、正しいコンポーネントと理解があれば、十分に管理可能です。このチュートリアルでは、L293Dモータードライバーを使用してDCモーターの速度と方向を制御するプロジェクトを構築します。最後には、モーターを前後に回転させながらその速度を調整できる作業セットアップが完成します。視覚的な参考のために、(動画は00:00にあります)を確認してください。

ESP32-15_L293Dモーター回路図

ハードウェアの説明

このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラとL293Dモータードライバが含まれています。ESP32は、内蔵のWi-FiおよびBluetooth機能を備えた強力なマイクロコントローラであり、IoTアプリケーションに適しています。GPIOピンを通じて、モーターを含むさまざまなハードウェアコンポーネントを制御できます。L293Dは、2つのDCモーターの方向と速度を制御できるデュアルHブリッジモータードライバです。各Hブリッジは、モーター端子にかかる電圧の極性を逆転させることで、モーターを両方の方向に駆動できます。さらに、L293Dはチャンネルごとに最大600 mAの電流を処理できるため、小型から中型のモーターに適しています。

L293DモータードライバーIC

データシートの詳細

製造業者 テキサス・インスツルメンツ
部品番号 L293D
論理/IO電圧 2.5 - 7 V
供給電圧 4.5 - 36 V
出力電流(チャンネルごと) 600 mA(典型)
ピーク電流(チャネルあたり) 1.2 A(最大)
PWM周波数ガイダンス 20 kHz(典型)
入力ロジック閾値 0.8 V(高)、2.0 V(低)
電圧降下 / RDS(on)/ 飽和 1.5 V (最大)
熱的限界 150 °C (最大)
パッケージ 16-DIP
メモ / バリアント クアドルプルハーフHドライバー

  • 高電流アプリケーションのために適切なヒートシンクを確保してください。
  • 電源を切り離し、コンデンサを使用して電圧スパイクを防ぎます。
  • 配線には注意し、極性が逆にならないようにしてください。
  • 温度が上昇しないように、速度制御にはPWMを使用してください。
  • モーターの定格電圧を確認して、損傷を防いでください。

配線指示

ESP32-15_L293D_motor_wiring

ESP32とL293Dモータードライバーを配線するには、まず電源を接続します。L293Dのピン16を電源の正端子に接続し、ピン4をグラウンドに接続します。次にモーターを接続します:一方の端子をL293Dのピン3に、もう一方をピン6に接続します。制御信号については、ESP32のGPIOピン13をL293Dのピン2に接続し、GPIOピン14をピン7に接続します。最後に、ESP32のグラウンドをL293Dのグラウンドに接続して、共通の基準を確保してください。動画で代替配線について言及されている場合(05:00の動画で)、示されている特定の変更を必ずフォローしてください。

コード例とウォークスルー

モーターを制御するコードは、モーターのピンを定義し、それらのモードを設定することからなります。こちらはセットアップ関数の抜粋です。

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

このスニペットでは、モーター制御ピンを定数として定義し、セットアップ関数で出力として設定します。これは、モーターを制御するためにピンを準備するために重要です。ループ関数ではモーターの動作が制御されます。ループの重要な部分は次のとおりです:

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

このコードはモーターを一方向に2秒間回転させ、その後逆方向に2秒間回転させ、最後にモーターを3秒間停止させます。このループは無限に繰り返され、連続的な制御が可能です。詳細な情報や完全なコードについては、記事の下に読み込まれる完全なプログラムを参照してください。

デモンストレーション / 期待すること

コードを正常に配線してアップロードすると、モーターは1方向に2秒間回転し、次に別の方向に2秒間回転し、その後3秒間停止するはずです。モーターが期待通りに反応しない場合は、極性の逆転やピン接続の誤りなどの一般的な落とし穴を確認してください(ビデオの08:00)。このセットアップは、ESP32とL293Dを使用してDCモーターの速度と方向を制御する簡単な方法を提供します。

ビデオのタイムスタンプ

  • 00:00 開始
  • 2:01 DCモーターの紹介
  • 6:14 L293D モータードライバー
  • 9:17 プロジェクトドキュメント。
  • 11:04 配線の説明
  • 14:41 ESP32を使用したArduinoモーター制御
  • 17:10 ESP32ボードのためのArduinoポートの選択
  • 18:52 プロジェクトデモンストレーション
  • 22:08 ESP32を使用したモーター速度制御
  • 26:22 速度制御デモ
  • 28:01 スピードと方向制御のArduinoコード
  • 29:05 速度と方向のデモンストレーション

画像

L293D-Motor-Driver-IC
L293D-Motor-Driver-IC
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_wiring
ESP32-15_L293D_motor_wiring
814-ESP32 Tutorial 15/55- Arduino code for L293D motor control
言語: C++
コピーしました!

必要かもしれないもの

リソースと参考文献

ファイル📁

データシート(pdf)