2017-10-22 5 views
0

私は手ジェスチャー制御のタンクを作っています。私はArduino UNOのDCモーターをテストするコードを作ったが、問題はモーターが振動していて動いていないということです。コードは:DCモーター振動していて動かない

#include <AFMotor.h> 

AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(2, MOTOR12_1KHZ); 
AF_DCMotor motor3(3, MOTOR34_1KHZ); 
AF_DCMotor motor4(4, MOTOR34_1KHZ); 

void setup() { 


motor1.setSpeed(255); 
motor2.setSpeed(255); 
motor3.setSpeed(255); 
motor4.setSpeed(255); 
} 

void loop() { 

// Serial.print("tien"); 

motor1.run(FORWARD);  
motor2.run(FORWARD); 
motor3.run(FORWARD); 
motor4.run(FORWARD); 
delay(10); 

//Serial.print("lui"); 

motor1.run(RELEASE);  
motor2.run(RELEASE); 
motor3.run(RELEASE); 
motor4.run(RELEASE); 
delay(10); 


motor1.run(BACKWARD);  
motor2.run(BACKWARD); 
motor3.run(BACKWARD); 
motor4.run(BACKWARD); 
delay(10); 

//Serial.print("tack"); 

motor1.run(RELEASE);  
motor2.run(RELEASE); 
motor3.run(RELEASE); 
motor4.run(RELEASE); 
delay(10); 
} 

私はなぜそれが動いているのかわかりません。私はワイヤーを交換してチェックしたが、同じことが起こっている。私はそれらを個別にバッテリーに接続してチェックし、彼らはかなりうまく動作しています。助けてください!!

+0

負荷がかかっていますか?彼らは失速した? – Attie

答えて

0

あなたは10 msに遅延を設定した場合、これは何が起こるかです: 10ミリ秒間停止します - モーター10ミリ のための反時計回りに移動 - モーター10ミリ のために停止した - モーター10ミリ 用時計回りに移動 - モーター -loop

そして10ms(ミリ秒)は非常に短い時間であるため、モーターが振動しているように見えます。

これを移動させるには、遅延を1000 ms(1秒)に増やします。

+0

おかげですが、私はそれをやってみたが、同じことがあった.... –

0

そういうことになっています。別のショットをつけてください。また、MOTOR12_1KHZを取り外すこともできます。また、RELEASEとBACKWARDを含む部品を取り外すと、簡単になり、エラーの可能性が少なくなります。それがうまくいくなら、ゆっくりと部品を追加してください。

関連する問題