我正在制作一个手势控制坦克。我制作了一个代码来测试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);
}
我不知道为什么它不动。我检查了它取代电线,但同样的情况发生了。我检查了他们单独连接到电池,他们工作得很好。请帮助!!
答案 0 :(得分:0)
如果将延迟设置为10 ms,则会发生以下情况: - 电动机顺时针移动10 ms - 电机停止10毫秒 - 电动机逆时针移动10 ms - 电机停止10毫秒 -loop
由于10ms(毫秒)的时间非常短,因此电机会振动。
要使其移动,请将延迟增加到1000毫秒,即1秒。
答案 1 :(得分:0)
它应该像那样工作。再试一次。您也可以尝试删除MOTOR12_1KHZ。还尝试删除包含RELEASE和BACKWARD的部分,这样它将被简化并且错误的可能性更小。如果可行,那么请慢慢添加更多部件。