Arduino Roboterarm

Moin zusammen, ich habe mir einen Roboter arm mit 4 Servos zusammengebaut. jetzt möchte ich gerne alle 4 Servos gleichzeitig ansteuern. Zeil ist es dass der Roboterarm automatisch in einer bestimmten Geschwindigkeit einen Parcours abfährt. Gibt es da eine passende Library?
Viele Grüße

die Servo.h

und wie kann ich mit der Library einen bzw. vier Servus gleichzeitig langsam laufen lassen?

machst dir eine Klasse für "Langsame" Servos und nutzt sie dann.

Nur als Beispiel von meiner Page:
https://werner.rothschopf.net/microcontroller/202207_millis_slow_servo.htm

und falls die Frage aufkäme, wie man unterschiedliche Servowege zeitlich gleich lang laufen lassen kann, da gäbe es z.B.

Da gibst einfach der Bewegung mit, wie lange sie dauern soll/darf.

Ok danke. Das wird mir dann aber doch etwas zu kompliziert :frowning:

was ist an einem .set weniger verständlich als einem .write?

void doorOpen()
{
  smoothServoA.set(0);
  smoothServoB.set(45);
}

ok Ich habe jetzt mal den loop angepasst. Ich möchte im loop einen Servo von 0° auf 90° fahren lassen. Das klappt aber leider nicht. Muss ich da noch was zusätzliches ein programmieren?

void loop()
{
  smoothServoA.set(0, 2000);
  delay(500);
  smoothServoA.set(90, 2000);
  delay(500);

Ok ich stelle mich grad doof an aber ich bekomme es grad wirklich nicht hin.

So wie ich @noiasca kenne, darfst Du da kein delay() drin haben.
Wenn Du erst an eine Position willst, dann dort verharren um danach die nächste Position anzufahren, brauchst Du entweder eine Schrittkette oder eine Abfrage auf den Punkt, ob der Servo an der Position ist, wo er hin soll...

Meines Wissens haben normale Modelbauservos keine Rückmeldung ob sie in Position sind.

0,5 Sekunden für die Bewegung sind schon sehr sportlich.
Beschreibe genauer was wie nicht geht. Wackelt der Servo nur ein wenig oder resetiert der Arduino?

Grüße Uwe

Ich habe die Library VarSpeedServo.h gefunden. Die hilft mir:
https://elektro.turanis.de/html/prj282/index.html

dann lass ich dich mal werkeln und spar mir eine Antwort auf #7 bis du dich aktiv meldest.

An der function set ist nichts kompliziert. Das anspruchsvolle ist die Klassendefinition.
Vor allem wenn man aus dem Lesen einer einzelnen Klassendefinition
selbst eine Klasse erstellen soll

Das zweite "komplizierte" ist dass man Leute die bis jetzt nur delay() kennen
ausdrücklich auf die ganz andere Natur von nicht-blockierendem Timing hinweisen müsste wenn es denn verständlich werden soll.

Da ist ein kurzer Hinweis auf millis() oder BWD einfach zu wenig um dieses grundlegende Umdenken auszulösen.

Siehe Beispiel-Code

nein haben sie nicht. Aber bei vielen libs kann man die momentan gesetzte Sollposition abfragen.

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