Arduino PWMを使ってL293DモータードライバでDCモーターを制御する

Arduino PWMを使ってL293DモータードライバでDCモーターを制御する

このプロジェクトは、L293DモータードライバーチップとArduinoのパルス幅変調(PWM)機能を使用して、DCモーターの速度と方向を制御する方法を示しています。このセットアップにより、正確なモーター制御が可能になり、さまざまなアプリケーションに適しています。

このセットアップを使ったプロジェクトのアイデアをいくつか紹介します:

  • ロボティクス:小さなロボットの車輪の動きを制御する。
  • 自動化装置:自動カーテン、ブラインド、または小型コンベヤーベルトを作成します。
  • ファン制御:温度測定に基づいて冷却ファンの速度を調整してください。
  • サーモトラッカー:小型の太陽光パネルを日中に太陽に合わせて配置します。

ハードウェア/コンポーネント

  • Arduino Uno(または互換ボード)
  • L293D モータードライバIC
  • DCモーター(L293Dの電圧と電流の制限に対して定格、最大600mA)
  • 9V電源(モーター用)
  • 接続ワイヤー
  • ブレッドボード(推奨)

配線ガイド

L293Dチップは、ArduinoとDCモーターのインターフェースとして機能します。これにより、Arduinoはモーターの速度と方向の両方を制御できます。このチップはモーター用に別の電源供給を必要とします。なぜなら、Arduinoはほとんどのモーターに十分な電流を供給できないからです。(ビデオ内では04:04に)

%%配線%%

コードの説明

ArduinoのコードはL293Dドライバーを制御し、それがDCモーターを制御します。このコードはPWMを使用してモーターの速度を変化させ、デジタル信号を使用して方向を切り替えます。

コード内の主要な設定可能なパラメータは次のとおりです。


#define P1A 10 // Arduino pin connected to L293D input 1A
#define P2A 11 // Arduino pin connected to L293D input 2A
#define EN12 9 // Arduino pin connected to L293D enable pin (1,2EN)

const int speedStep = 15; // Increment for speed changes
const int speedDelay = 1000; // Delay between speed steps (in milliseconds)

そのL293D()モーターの方向と速度を制御します。 'L'はモーターを時計回りに回転させ、 'R'は反時計回りに設定します。spdパラメーターは速度(0-255)を制御します。enモーターを有効(1)または無効(0)にします。(動画の09:24で)


void L293D(char dir,int spd, int en)
{
  if(dir =='L') // Clockwise rotation
  {
    // ...
    analogWrite(P1A,spd); // Set speed using PWM
    digitalWrite(P2A,LOW); 
  }else{ // Counter-clockwise rotation
    // ...
    digitalWrite(P1A,LOW);
    analogWrite(P2A,spd); // Set speed using PWM
  }
}

ライブプロジェクト/デモンストレーション

ビデオはプロジェクトの動作を示しており、モーターの速度と方向の変化を映し出しています。オシロスコープの読み取り値はモーターを制御するPWM信号を可視化しています。(ビデオの11:07にて)

  • [00:00] L293DによるDCモーター制御の紹介
  • [00:30] プロジェクトのデモンストレーションと説明
  • [01:12] L293Dモータードライバーの概要
  • [02:08] DCモーターの仕様
  • [02:30] L293Dデータシートの説明
  • [04:40] 配線の説明とデモンストレーション
  • [07:05] Arduinoコードの説明
  • [11:07] プロジェクトデモンストレーションとオシロスコープの測定値
144-Arduino source for L293D motor driver (loop)
言語: C++
145-Source for a simple L293D motor controller using Arduino (CW, CCW, and STOP)
言語: C++
コピーしました!

ファイル📁

ファイルは利用できません。