电机只用L293D控制器旋转一个方向

时间:2017-07-03 10:45:51

标签: arduino arduino-uno pwm motordriver

你好我有一辆遥控车有两个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);
}

这也是布线:

Wiring

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

您是否知道如何解决此问题并使其有效?

谢谢。

1 个答案:

答案 0 :(得分: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()激活。

一旦连接到PWM的Enable n 引脚,您就会有一个良好的PWM使能信号。只需连接芯片同一侧的其他引脚(用于Enable1和IN3的IN1和IN2以及用于Enable2的IN4),然后用`digitalWrite(引脚,HIGH)将它们打开和关闭,你就可以了