モーターコントローラー L298N
- 2021.05.23
- Arduino入門
モーターコントローラーとは
モーターコントローラー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 モーターコントローラー サンプルスケッチ
1 ファイル 0.52 KB
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を出力し最高出力で回転)
-
前の記事
サーボモーター SG-90 2021.05.22
-
次の記事
Open in Unity で反応しない場合の処置 2021.06.21