Servo mit button und ir remote steuern

ich habe folgenden code geschrieben. Das Problem ist dass das mit dem button noch nicht funktioniert. Kann mir jemand weiterhelfen ?

#include <IRremote.h>
#include <Servo.h>

int RECV_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;

int pos = 0;
Servo myservo;

void setup()
{

Serial.begin(9600);
pinMode (11, OUTPUT);
pinMode (2, INPUT);
irrecv.enableIRIn();

myservo.attach(3);
myservo.writeMicroseconds(1500);
}

void loop() {

if (irrecv.decode(&results)) {
int value = results.value;

switch (value) {
case 16220287 :
case 16758855 :
case 16769055 :
case 3736127585 :
Serial.println(“Taste 1”);
for (pos = 1400; pos <= 2400; pos += 30) {
// in steps of 1 degree
myservo.writeMicroseconds(pos);
delay(5);
}
break;

case 16187647 :
case 16748655 :
Serial.println(“Taste 2”);
for (pos = 2400; pos >= 1400; pos -= 30) {
myservo.writeMicroseconds(pos);
delay(10);
}
break;
} // switch ende

Serial.println(results.value, DEC);
delay(500);

irrecv.resume();
}
if (digitalRead(2) == LOW) {
for (pos = 1400; pos <= 2400; pos += 30)

myservo.writeMicroseconds(pos);
delay(5);

}
if (digitalRead(2) == HIGH) {
for (pos = 2400; pos <= 1400; pos += 30)

myservo.writeMicroseconds(pos);
delay(5);

}
}

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Außerdem entferne bitte die unnötigen Leerzeilen.

Gruß Tommy

Setze Deinen Sketch bitte in Code-Tags (Symbol im Editor). Dann ist der Code besser zu lesen.

Du kannst das auch nachträglich tun.

Gruß

Gregor

Was soll der Sketch denn machen, und was geht nicht? Ein paar Informationen wären schon nicht schlecht. Außerdem ist es immer sinnvoll sich von Anfang an daran zu gewöhnen, den Sketch zu kommentieren. Und zwar nicht die Syntax, sondern die Semantik. Also was soll ein bestimmter Programmabschnitt machen, wozu ist der da. Das hilft dann auch uns zu prüfen, ob das Programm dann auch dazu passt.

Auf den ersten Blick fehlen bei den for-Schleifen in den Button-Abfragen die Klammern {...}. So wie es jetzt ist, gehören die delays nicht zur for-Schleife. Bei einem Servo macht es auch keinen Sinn, alle 5ms den Vorgabewert zu ändern, da die Impulse eh nur alle 20ms erzeugt werden.

(deleted)

Hi

Dir wird sicher aufgefallen sein, daß das Servo, sofern Es zuckt, dauernd zuckt!
Das liegt daran, daß Du - egal was der taster-Pin sagt, eine FOR-Schleife durcharbeitest und dem Servo laufend neue Positionen vorwirfst.
Ein Mal in die eine Richtung (dann fährt das Servo von Links nach Rechts - dann kommt die Anfrage erneut dran, Servo fährt von Links nach Rechts, ...) oder, wenn der Taster losgelassen wird, in die andere Richtung - dürfte sich von Außen kaum unterscheiden, da Du die Servowerte dem Servo nur so entgegen schmetterst.

Mindestens 20ms 'braucht' das Servo, um eine neue Position überhaupt bekommen zu können - viel schneller kannst Du zwar schwätzen, das Servo aber nicht reagieren (da eben nur alle 20ms ein Impuls generiert wird).

An dem Code ist Einiges, Was man auf-hübschen kann.

MfG

und was muss ich machen, damit der Servo nicht die ganze zeit zuckt??

Liest du auch alle Beitrage hier ?