void pause(int ms)

  • Hallo Wolfgang,


    ja, das kannst du so machen. Allerdings bekommst du dadurch ein etwas anderes Verhalten.


    Mit servo.write(10,20) gibst du dem Servo den Auftrag, mit Geschwindigkeit 20 die Position 10 anzusteuern.

    Wenn der Servo weniger als 500 ms benötigt, wird er nach Erreichen der Position warten, bis die 500 ms abgelaufen sind.

    Wenn er mehr als 500 ms benötigt, wird er nach Erreichen der Endposition sofort wieder in die andere Richtung losfahren.


    Das alte Programm machte Folgendes:


    Mit servo.write(10,20) gibst du dem Servo den Auftrag, mit Geschwindigkeit 20 die Position 10 anzusteuern.

    Sobald die Position erreicht ist, stoppt der Servo.

    Nach einer Pause von 500 ms startet er in die andere Richtung.


    Deine Variante hat einen grossen Vorteil, wenn du eine exakte Anzahl Bewegungen pro Minute haben möchtest. Solange eine einzelne Bewegung unter 500 ms bleibt, ist diese Anzahl nicht von der Geschwindigkeit und der zurückgelegten Strecke abhängig.


    Bei meiner Variante ergibt sich eine konstante Wartezeit. Die Anzahl Bewegungen ist aber von der Geschwindigkeit und der jeweils zurückgelegten Strecke abhängig.


    Gruss

    René

  • Hallo Rene,


    ich habe mich gerade mit der Lektion 35 beschäftigt und möchte eine kleine Veränderung in der Funktion Pause vorschlagen:

    Ich habe die "amZiel-Schleife" in die Pause-Funktion übernommen und aus der loop-Funktion herausgenommen. Damit wird die Wartezeit von 500 ms nicht jedes Mal zusätzlich eingefügt, sie wird aber niemals unterschritten.

    Was hältst Du davon?


    void_pause.png


    Gruß,

    Wolfgang