ich habe einen MEGA 2560 im Einsatz, mit an Pin 6/7 angeschlossenen Servos.
(DIe Servos haben eine eigene Stromversorgung mit 3 A)
Auf Knopdruck meiner IR.Fernbedienung passiert folgendes:
Die Variable ServoA1position wird wie erwartet dekrementiert. Das Servo macht aber einen Riesensatz, der den 10 Grad nicht entspricht. Ansprechen lässt immer auch nur eins der beiden Servos. (Identisch programmiert) Das andere macht nichts.
So fährt entweder das ein oder das andere Servo an den mechanischen Anschlag.
Ohne ganzen Sketch wird Das hier wieder eine Rate-Runde!
Uch denke, daß Deine Pausieren(x) ebenfalls, mehr oder minder, blockierend arbeitet.
Du wirst darin wohl zwar die Fernbedienung abfragen, aber das Programm bleibt aber an dem delay hängen.
Es kann z.B. während der Wartezeit NICHT in den anderen Case-Zweig kommen, da kann die Fernbedienung empfangen, was Sie will, es muß auch Jemanden geben, Den Das interessiert (die switch-Anweisung wird ja auch erst wieder im nächsten loop()-Duchlauf abgefragt).
Meiner Meinung darfst Du nicht dauernd ServoA1.attach(7, 1000, 2000); und ServoA1.detach(); machen. Der Servo bekommt dann kein Steuersignal und wenn dann wieder ein Steuersignal kommt macht er eine unkontrollierte Bewegung.
Wieso an anderer Stelle ein Servo funktioniert und der andere nicht sagt nur der Sketch. Du wirst einen Fehler gemacht haben.
Der attach-Befehl ist in den setup verschoben worden.
Ich habe den zweiten Servo komplett im Sourcecode auskommentiert, Trotzdem macht der Servo Sprünge zum Endanschlag. Und zwar nur, wenn die Funktion "Automatikbetrieb()" durchlaufen wird. Servo 1 arbeitet korrekt.
Ich bin jetzt am Ende angekommen. Ich habe keine Ahnung, warum sich Servo 2 bewegt, obwohl dieser nicht angesprochen wird.
Ich hoffe, es hat noch jemand eine Idee.
Danke
Gruß
Peter
Der attach-Befehl ist in den setup verschoben worden.
bei Taste 0, 2, 3, 4 machst du das immer noch.
bei 5 verschiebst du den Servo plötzlich zu
ServoA1.attach(3,
Was bezweckst du damit?
Ich habe den zweiten Servo komplett im Sourcecode auskommentiert, Trotzdem macht der Servo Sprünge zum Endanschlag. Und zwar nur, wenn die Funktion "Automatikbetrieb()" durchlaufen wird. Servo 1 arbeitet korrekt.
Ich bin jetzt am Ende angekommen. Ich habe keine Ahnung, warum sich Servo 2 bewegt, obwohl dieser nicht angesprochen wird.
bei Taste 3 und Taste 5 sprichst du den Servo2 noch immer an.
fahren die Servos tatsächlich dorthin wo sie hin sollen? Ich glaube nicht das sie überhaupt die Sollposition erreichen.
Das ewige PingPong mit attach und detach und die delays müssen raus.
Eine Servofunktion für alle Aufrufe wo die Servo-SOLL-Position übergeben wird. Diese wird in der loop ständig aufgerufen. Ohne delay! Du musst millis verwenden. Sonst reagiert deine Fernbedienung störrisch.