0

您好,我有一辆遥控车,它有两个 3v 电机(一个用于左/右,另一个用于前/后)。左右电机工作正常,但是当我尝试旋转另一个电机时,它只会向后旋转。我已经单独尝试过电机,它在没有控制器的情况下双向工作。

我的代码如下:

int enablePinMotorAF = 3;
int in1PinMotorAF = 5;
int in2PinMotorAF = 6;
int enablePinMotorLR = 11;
int in1PinMotorLR = 10;
int in2PinMotorLR = 9;
boolean reverse = true;

void setup() {
  pinMode(enablePinMotorAF, OUTPUT);
  pinMode(in1PinMotorAF, OUTPUT);
  pinMode(in2PinMotorAF, OUTPUT);
  pinMode(enablePinMotorLR, OUTPUT);
  pinMode(in1PinMotorLR, OUTPUT);
  pinMode(in2PinMotorLR, OUTPUT);
}

void loop() {
  //go forward  ->not working
  analogWrite(enablePinMotorAF, 230);  //max speed
  digitalWrite(in1PinMotorAF, reverse);
  digitalWrite(in2PinMotorAF, !reverse);
  delay(3000);
  //go back -> working
  analogWrite(enablePinMotorAF, 230); //max speed
  digitalWrite(in1PinMotorAF, !reverse);
  digitalWrite(in2PinMotorAF, reverse);
  delay(3000);
  //go right -> working
  analogWrite(enablePinMotorLR, 230); //max speed
  digitalWrite(in1PinMotorLR, !reverse);
  digitalWrite(in2PinMotorLR, reverse);
  delay(3000);
  //go left  -> working
  analogWrite(enablePinMotorLR, 230); //max speed
  digitalWrite(in1PinMotorLR, reverse);
  digitalWrite(in2PinMotorLR, !reverse);
  delay(3000);
}

这也是接线:

接线

绿色和橙色线用于蓝牙模块。

你知道我该如何解决这个问题并让它发挥作用吗?

谢谢你。

4

1 回答 1

0

要反转电机,您需要四个销,每个电机两个。在现成的 L293 模块上,它们通常标记为 IN1、IN2、IN3 和 IN4。

要使一个电机前进,您可以将 IN1 设置为 5V,将 IN2 设置为 0V。要反转它,只需将输入 IN1 切换到 0V,IN2 切换到 5V。在这种情况下,5V 是digitalWrite(pin, HIGH).

其他电机的其他两个引脚类似。我从这个开始回答,因为输出引脚到输入引脚的接线至关重要。

启用引脚似乎是您出错的地方。Enable2 和 Enable1 应该连接到您正在执行的引脚,analogWrite()enablePinMotorAF = 3例如连接到电机信号输入,而不是可能应该连接到 Enable2。从修复它开始……你的两个引脚 3 和 11 应该连接到 Enable1 和 Enable2。 您只需要启用引脚上的 PWM。 其他的应该简单地用 激活digitalWrite()

一旦您将启用n引脚连接到 PWM,那么您将获得一个良好的 PWM 启用信号。只需连接芯片同一侧的其他引脚(IN1 和 IN2 用于 Enable1,IN3 和 IN4 用于 Enable2),然后使用“digitalWrite(pin, HIGH)”打开和关闭它们,您就可以开始使用了。

于 2017-07-03T12:30:39.280 回答