我正在与Arduino合作,我连接了伺服电机和普通电机。它们都工作但是当我启动正常的电机脚本时,伺服电机会产生小的痉挛物。 有人可以帮我这个吗?
// Includes
#include <Servo.h>
// Aanmaken van de variabelen voor in de code
int ledPin = 13;
const int motorPin = 2;
int usbnumber = 0;
Servo stuurServo; // create servo object to control a servo
int pos = 90; // variable to store the servo position
// De eerste setup maken
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(motorPin, OUTPUT);
stuurServo.attach(12);
Serial.begin(9600);
stuurServo.write(pos);
}
void loop()
{
if (Serial.available() > 0) {
usbnumber = Serial.read();
}
if (usbnumber > 0) {
if (usbnumber == 1){ // Lampje knipperen
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
}else if(usbnumber == 2){ // Motor aan voor 5 seconden
digitalWrite(motorPin, HIGH);
delay(20000);
digitalWrite(motorPin, LOW);
}else if(usbnumber == 3){ // stuur servo +10 graden
if(pos != 180){
pos + 10;
stuurServo.write(pos);
}
}else if(usbnumber == 4){ // stuur servo -10 graden
if(pos != 0){
pos - 10;
stuurServo.write(pos);
}
}else if(usbnumber == 5){ // stuur servo liks
pos = 0;
stuurServo.write(pos);
}else if(usbnumber == 6){ // stuur servo rechts
pos = 180;
stuurServo.write(pos);
}else{
delay(500);
}
usbnumber = 0;
}
}
答案 0 :(得分:2)
大多数(业余爱好)伺服电机在通电时会发出抽搐或抖动,特别是在驱动伺服电机之前给电机供电(提供位置控制信号)。解决方案是在允许通电之前写入伺服控制线。一些简单的解决方案包括:
在驾驶位置控制线之前,没有任何方法可以让电路在没有伺服电源的情况下启动,基本上没有什么可以做的。