
L298NとArduinoの配線図およびサンプルコード
配線図の説明
L298Nモジュールのピン Arduinoピン
---------------------------------
ENA 5 (PWMピン)
IN1 7
IN2 8
IN3 9
IN4 10
ENB 6 (PWMピン)
12V 外部電源の正極 (7〜12V)
GND 外部電源の負極およびArduinoのGND
5V出力(オプション) Arduinoの5V(給電が必要な場合)
モーターA OUT1とOUT2
モーターB OUT3とOUT4
サンプルコード
// L298Nモジュールのピン接続を定義
#define ENA 5 // Aの有効化 PWMピン
#define IN1 7 // モーターAの回転方向を制御
#define IN2 8 // モーターAの回転方向を制御
#define IN3 9 // モーターBの回転方向を制御
#define IN4 10 // モーターBの回転方向を制御
#define ENB 6 // Bの有効化 PWMピン
void setup() {
// すべてのモーター制御ピンを出力に設定
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// 初期状態ではモーターを停止
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
Serial.begin(9600);
Serial.println("L298Nモーター制御サンプル");
}
void loop() {
// モーターAは正転、モーターBは逆転
Serial.println("モーターAは正転、モーターBは逆転");
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, 200); // モーターAの速度を設定 (0〜255)
analogWrite(ENB, 200); // モーターBの速度を設定 (0〜255)
delay(2000);
// すべてのモーターを停止
Serial.println("すべてのモーターを停止");
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1000);
// モーターAは逆転、モーターBは正転
Serial.println("モーターAは逆転、モーターBは正転");
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 150); // モーターAの速度を設定 (0〜255)
analogWrite(ENB, 150); // モーターBの速度を設定 (0〜255)
delay(2000);
// すべてのモーターを停止
Serial.println("すべてのモーターを停止");
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1000);
}
コードの機能説明
- L298NモジュールとArduinoの接続ピンを定義
- setup()関数で全てのピンを出力モードに初期化
- loop()関数内で以下を実行:
– モーターAは正転、モーターBは逆転
– すべてのモーターを停止
– モーターAは逆転、モーターBは正転
– 再度すべてのモーターを停止
注意事項
- 外部電源電圧は7〜12Vの範囲内にしてください
- 速度調整が不要な場合は、ENAとENBを直接5Vに接続可能です
- モーターの回転方向制御ロジック:
– IN1=HIGH, IN2=LOW → モーターA正転
– IN1=LOW, IN2=HIGH → モーターA逆転
– IN3=HIGH, IN4=LOW → モーターB正転
– IN3=LOW, IN4=HIGH → モーターB逆転
- analogWrite()関数によるPWM出力で、モーター速度を0〜255の範囲で調整可能です
用途に応じてピン接続やモーター制御ロジックを変更してください。
oxxo