Hallo Forum!
Ich habe 2 Servos an meinen Arduino angeschlossen. Sie sollen zwei Modellbahntor öffnen und schließen. Hier der Kode:
#include <VarSpeedServo.h>
VarSpeedServo Tor1;
VarSpeedServo Tor2;
const int Schalter[] = {7};
const int richtungaus[] = {12};
int Schalterstatus1 = 0;
int vorherigerSchalterstatus1 = 0;
int drehservo1 = 1;
//int posZU = 94;
//int posAUF = 108;
void setup() {
// put your setup code here, to run once:
Tor1.attach(9);
Tor2.attach(10);
pinMode(Schalter[0], INPUT);
pinMode(richtungaus[0], OUTPUT);
Tor1.write(74, 3);
//Tor2.write(100, 3);
}
void Servoroutine1(int posZU, int posAUF) {
Schalterstatus1 = digitalRead(Schalter[0]);
delay(1);
if (Schalterstatus1 != vorherigerSchalterstatus1) {
if (Schalterstatus1 == HIGH) {
drehservo1 = !drehservo1;
}
}
if (drehservo1 == 1) {
Tor1.write (posZU,4,true); // (Winkel, Geschwindigkeit)
digitalWrite(richtungaus[0], HIGH);
federn = true;
}
else if (drehservo1 == 0) {
Tor1.write (posAUF,4, true);
digitalWrite(richtungaus[0], LOW);
federn = false;
}
vorherigerSchalterstatus1 = Schalterstatus1;
}
void Servoroutine2(int posZU, int posAUF) {
Schalterstatus1 = digitalRead(Schalter[0]);
delay(1);
if (Schalterstatus1 != vorherigerSchalterstatus1) {
if (Schalterstatus1 == HIGH) {
drehservo1 = !drehservo1;
}
}
if (drehservo1 == 1) {
Tor2.write (posZU,4,true); // (Winkel, Geschwindigkeit)
digitalWrite(richtungaus[0], HIGH);
federn = true;
}
else if (drehservo1 == 0) {
Tor2.write (posAUF,4, true);
digitalWrite(richtungaus[0], LOW);
federn = false;
}
vorherigerSchalterstatus1 = Schalterstatus1;
}
void loop(){
Servoroutine1(74, 90); // Wert ZU, Wert AUF
Servoroutine2(61, 75);
}
Das Problem ist, dass Servo #1 nach dem Erreichen seiner Position etwas ruckelt und vibriert. Woran könnte das liegen?
Beide Servos ziehen Strom über den Arduino.
Danke für Eure Hilfe, Tjarko
