arduino通过l298n控制两电机程序
时间: 2023-07-01 18:17:07 浏览: 112
下面是一个基于 L298N 驱动板控制两个电机的 Arduino 代码示例:
```C++
// 定义电机 A 的引脚
int motorAPin1 = 2;
int motorAPin2 = 3;
int motorAPinEN = 9;
// 定义电机 B 的引脚
int motorBPin1 = 4;
int motorBPin2 = 5;
int motorBPinEN = 10;
void setup() {
// 设置电机引脚为输出模式
pinMode(motorAPin1, OUTPUT);
pinMode(motorAPin2, OUTPUT);
pinMode(motorAPinEN, OUTPUT);
pinMode(motorBPin1, OUTPUT);
pinMode(motorBPin2, OUTPUT);
pinMode(motorBPinEN, OUTPUT);
}
void loop() {
// 控制电机 A 正转
digitalWrite(motorAPin1, HIGH);
digitalWrite(motorAPin2, LOW);
analogWrite(motorAPinEN, 255); // 255 表示最大速度
// 控制电机 B 反转
digitalWrite(motorBPin1, LOW);
digitalWrite(motorBPin2, HIGH);
analogWrite(motorBPinEN, 200); // 200 表示速度为 80%
delay(5000); // 延时 5 秒
// 停止电机 A 和 B
digitalWrite(motorAPin1, LOW);
digitalWrite(motorAPin2, LOW);
digitalWrite(motorBPin1, LOW);
digitalWrite(motorBPin2, LOW);
}
```
上述代码中,我们首先定义了两个电机 A 和 B 的引脚,其中 `motorAPin1` 和 `motorAPin2` 分别对应电机 A 的两个输入引脚,`motorAPinEN` 对应电机 A 的使能引脚。电机 B 的引脚同理。
在 `setup()` 函数中,我们将这些引脚设置为输出模式,以便控制电机的转动。
在 `loop()` 函数中,我们可以通过设置 `digitalWrite` 和 `analogWrite` 函数的参数来控制电机的转动方向和速度。例如,`digitalWrite(motorAPin1, HIGH)` 表示将电机 A 的一个输入引脚设置为高电平,从而使其正转;而 `analogWrite(motorAPinEN, 255)` 表示将电机 A 的使能引脚输出 255 的 PWM 信号,从而使其以最大速度转动。
最后,我们通过 `delay()` 函数来控制电机的转动时间,并在每次循环结束后停止电机的转动。
阅读全文