PR

ArduinoでモータードライバーL298Nモジュールを使う方法

記事内に広告が含まれています。

 L298N(モータードライバ)はDCモーターなどの回転制御(正転、逆転、速度)などを行うICです。備忘録として使用方法などをまとめておきます。

▼使用するモジュールはこれ▼

 Amazonや秋月なんかで入手できると思います(2023/11現在)。今回紹介するのはAmazonで入手したもの。モーターの正転、逆転、速度制御に3線使用します。秋月のモジュールは2線で制御するような基板になってました。少し高価ですがマイコンのピンを少しでも節約したいときは秋月のモジュールのがいいかもしれません。

▼ピン配置▼

 2つのDCモーターの回転制御ができます。あとここでは触れませんがL298Nでは1つのステッピングモーターも制御できます。

ピン説明
12vモーターへの入力電圧と内部レギュレーターへの供給
GNDGNDピン
5v enable ジャンパー接続でレギュレーターから内部回路へ5v供給。5vとA/B enableピンの上のピンに5v供給します。
5v「5v enable」ピンをジャンパ接続すると5v出力端子となる
OUT A1/2モーターAへ接続
OUT B1/2モーターBへ接続
A enableモーターAの回転速度制御。ジャンパ接続で定速回転。下のピンにPWM入力で速度制御
B enableモーターBの回転速度制御。ジャンパ接続で定速回転。下のピンにPWM入力で速度制御
in1/22ピンの印加電圧パターンでモーターAの制御
(正転(H:L)、逆転(L:H)、ブレーキ(H:H))
in3/42ピンの印加電圧パターンでモーターBの制御
(正転(H:L)、逆転(L:H)、ブレーキ(H:H))

 他にも、データシート見てたら、ICにはCurrentSensingのピンが準備されていてシャント抵抗挟めばモーター電流が検出できるような感じでした。ただ今回のモジュールではそのピンがGndへ落とされているので使用できなさそうでちょっと残念。

 本来の使用用途(モーター回転制御)では無いですがArduinoなどのマイコンからL289Nモジュールを使用して電磁石(コイル)の磁気制御に使用した例です▼

▼モーター回転のサンプルソース▼

void setup() {
  pinMode(8, OUTPUT);  //in1ピン
  pinMode(9, OUTPUT);  //in2ピン
  pinMode(10, OUTPUT); //A enableピン
}

void loop() {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  for (int i = 0; i < 255; i++) {
    analogWrite(10, i);
    delay(10);
  }
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
  for (int i = 255; i >= 0; i--) {
    analogWrite(10, i);
    delay(10);
  }
}

およそ5秒周期でモーターの正逆転、速度変化しているだけのソースです。(テストはしてません)

コメント

タイトルとURLをコピーしました