2017-07-03 115 views
0

你好,我有一個RC汽車有兩個3V電機(一個左/右,另一個前/後)。左右電機工作正常,但當我嘗試旋轉另一個電機時,它只能旋轉回來。我已經單獨嘗試了電機,並且在沒有控制器的情況下雙向工作。電機只有一個方向與L293D控制器

我的代碼如下:

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

的綠色和橙色線是藍牙模塊。

你有什麼想法我該如何解決這個問題,並使其工作?

謝謝。

回答

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的引腳啓用n,那麼您將有一個很好的PWM使能信號。只需連接芯片同一側的其他引腳(IN1和IN2用於Enable1,IN3和IN4用於Enable2),然後用`digitalWrite(引腳,高電平)打開和關閉它們,你就可以很好地走了。

+0

問題是我必須將引腳6與引腳3互換,因爲它們被聲明爲錯誤。現在的方向是好的,它的工作原理,但我經過一些測試,它只是非常緩慢地旋轉,左/右馬達只是在搖晃。我嘗試了一種新電池,結果相同。所以你的意思是@JLH,我應該將4個IN引腳連接到非PWM端口?這可能是問題嗎? –

+0

不需要。簡單地說:這兩個引腳,不管它們是做analogWrites的,它們都需要連接到L293上的使能引腳。其他的引腳並不關心他們在Arduino上的連接,只要你可以使用digitalWrites()來關閉它們(前進和後退)。 – TomServo

+0

現在我有這樣的:兩個啓用引腳連接到6,11(PWM端口),我做模擬寫速度改變,其他(IN1,IN2,IN3,IN4)連接到其他PWM端口,我做digitalWrite改變方向。但他們仍然行動緩慢。這是爲什麼? –

相關問題