モーターコントローラー L298N

モーターコントローラー L298N

モーターコントローラーとは

モーターコントローラーL298Nは、ヒートシンクのところについているブリッジドライバーを使って、2つのモーターの動きを制御するモジュールです。

●マスターチップ:L298N
●動作モード:Hブリッジ駆動(デュアル)
●ロジック電圧:5V
●駆動電圧:5V~35V
●ロジック電流:0~36mA
●駆動電流:2A
●最大出力:25W

各端子は以下のとおりです。

●OUT1~4:2つのモータの+/ー極に接続
●12V:駆動用12V電源入力
●GND:GND
●5V:ロジック用5V電源入力(駆動電源が12V以下の場合は必要なし)
●INPUT1~4:ロジック信号入力
●En A / En B:PWMのピンと接続(ブリッジは残したまま)

回路を作る

クリックして拡大

EnA / EnB の端子は、ブリッジを残したまま、ブリッジの隙間にピンを差し込んで接続するので、接続はやや不安定になります。

サンプルスケッチ

サンプルスケッチを以下からダウンロードして、ZIPファイルを開きます。

L298N.ino

int i = 0;
int enA = 3;
int in1 = 4;
int in2 = 5;
int in3 = 7;
int in4 = 8;
int enB = 9;

//ピンを出力に設定
void setup() {
  pinMode(enA, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(enB, OUTPUT);
}

//RotOne:正逆回転処理
void RotOne() {

  //2秒正回転
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  analogWrite(enA, 255);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite(enB, 255);
  delay(2000);

  //2秒逆回転
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  delay(2000);

  //停止
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}

//RotTwo:加速処理
void RotTwo() {
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);

  //加速
  for (i = 0; i < 255; i++) {
    analogWrite(enA, i);
    analogWrite(enB, i);
    delay(20);
  }
  
  //停止
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}

//処理の実行
void loop() {
  RotOne();
  delay(500);
  RotTwo();
  delay(500);
}

スケッチ内の関数等について

●digitalWrite:1つのモーターにつき HIGH / LOW または LOW / HIGH でモーターが正転/逆転し、LOW / LOWで停止

●analogWtite:出力するピン番号と出力の指定(0で0V、255で5Vを出力し最高出力で回転)