直流电机振动而不是移动

时间:2017-10-22 06:10:31

标签: arduino-uno

我正在制作一个手势控制坦克。我制作了一个代码来测试Arduino UNO上的直流电机,但问题是电机只是振动而不是移动。代码是:

#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);
}

我不知道为什么它不动。我检查了它取代电线,但同样的情况发生了。我检查了他们单独连接到电池,他们工作得很好。请帮助!!

2 个答案:

答案 0 :(得分:0)

如果将延迟设置为10 ms,则会发生以下情况: - 电动机顺时针移动10 ms - 电机停止10毫秒 - 电动机逆时针移动10 ms - 电机停止10毫秒 -loop

由于10ms(毫秒)的时间非常短,因此电机会振动。

要使其移动,请将延迟增加到1000毫秒,即1秒。

答案 1 :(得分:0)

它应该像那样工作。再试一次。您也可以尝试删除MOTOR12_1KHZ。还尝试删除包含RELEASE和BACKWARD的部分,这样它将被简化并且错误的可能性更小。如果可行,那么请慢慢添加更多部件。