Steuerung langsamer Servo

Hallo Arduino Gemeinde,
ich habe mir da eine Sketch erstellt um einen Servo per Taster zu steuern.
Leider ruckelt dieser beim bewegen und habe da so keine Idee wie man das ändern könnte.
Hat von Euch da einer eine Idee oder Ratschlag.

Schon mal Danke für etwa Input.

LG
Sven

#include <MobaTools.h>

const int Taster_START      = A1;
const int servo_1           = 9;


const byte autoOff = 1;
int tasterStatus_START;

MoToServo myServo1;
MoToTimer myTimer_Aktionszeit;


void setup() {
  pinMode(Taster_START, INPUT_PULLUP);

  myServo1.attach(servo_1, autoOff);
  myServo1.setSpeed(5);               // Drehgeschwindigkeit
  myServo1.write(10);                  // Startposition beim Einschalte des Arduino - kann auch gleicher Wert wie Richtung_1 oder Richtung_2 sein, Sicherheitsstellung

}

void loop() {

  tasterStatus_START = digitalRead(Taster_START);

  if (!digitalRead(Taster_START) && !myServo1.moving() && !myTimer_Aktionszeit.expired() ) {
    
    myServo1.write(30);                           // Servo dreht in Richtung_1 ...
    myTimer_Aktionszeit.setTime(3000);           // Servo pausiert für ...  ( z.B. 10 sec)   AKTIONSZEIT hier einstellen        
  }

  if (myTimer_Aktionszeit.expired() )  {
    delay(3000);
        myServo1.write(1);                          // Servo dreht in Richtung_2 ...

  }

  
}

 

Vielleicht prellt der Taster?

Ich würde noch überlegen, das delay(3000) durch einen zweiten Aktionstimer oder durch erneutes Aufziehen des Ersten - dann mit einem Merker ob Zyklus _1 oder _2 aktiv ist - zu ersetzen.

Ich bin noch am überlegen...
Aber:

Das benutzt Du nicht :wink:

Ich denke, deine Bedingung passt nicht...
Aber unser Microbahner ist ja schon am schreiben .. bin weg.

Wie ist dein Servo angeschlossen und wie ist es mit Strom versorgt? Wie stark ruckelt es und wann? Nicht alle Servos - speziell die billigen - können langsam wirklich gleichmäßig fahren .
Das Tasterprellen macht in deinem Fall nichts aus.
Hier:

darfst Du für den TImer nicht 'expired' verwenden, sondern musst das mit 'running' machen.
Dein delay macht keine Sinn. Wenn der Servo erst später zurückfahren soll, mach einfach das setTime größer.

Mein Servo ruckelt mit deinem Sketch nicht.

Der Einwand von @my_xy_projekt , dass Du deine Variable 'TasterStatus_START' gar nicht nutzt ist auch richtig. So ist das ziemlich sinnfrei :wink:

Sag ich doch - Bedingung passt nicht :wink:
Beste Grüße!

Hallo MicroBahner und Co.
Danke für die Info was für einen Servo nutzt Du denn kannst Du das was empfehlen ist habe zum testen diese billigen im 6er Set genommen bin aber neuem immer aufgeschlossen was einem die Arbeit erleichtert.

"darfst Du für den TImer nicht 'expired' verwenden, sondern musst das mit 'running' machen.
Dein delay macht keine Sinn. Wenn der Servo erst später zurückfahren soll, mach einfach das setTime größer."

Da bin ich raus und kein Profi haben den Sketch auch wo übernommen, angepasst und dann verzweifelt :slight_smile:

Top Leute hier im Forum wünsche Euch einen angenehmen Abend.

Grüsse Sven

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.