
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)
您可以根据需要修改引脚连接和电机控制逻辑。
AI, AI@bot