Ich habe zwei Servos, die aufgrund des Einbaus (über Kopf) anders herum drehen als die anderen. Das heisst wenn die Servos geschlossen sind (0°) sind diese zwei Servos über Kopf geöffnet (0°).
Nun müsste ich ha eigentlich nur anstelle von 0°, 180° ansteuern. Also dachte ich mir, ich gebe folgendes bei diesen zwei Servos ein:
i = der Winkel den ich über den Serial Monitor sende
servo.write(180-i);
Nun mein Problem, der Servo bewegt sich genau gleich. Mache ich einen Überlegungsfehler oder muss man die Berechnung ausserhalb des servo.write() ausführen damit es funktioniert?
Die Drehrichtung stimmt ja soweit, aber weil diese Servos Kopfüber verbaut sind, ist der Winkel genau anders herum, also 0° geöffnet und 180° geschlossen.
Hallo,
in der einen Zeile kann ich keinen Fehler finden, eigentlich sollte das so klappen. Vermutlich steckt dein Fehler aber anderswo.
Tip füge eine Seriel.print Zeile ein und lass dir anzeigen was du an den Motor gibst.
Heinz
Das war ein super Tipp mit dem Serial Monitor! Ich habe festgestellt, dass wirklich das Servo verkehrt drehte. Wieso kann ich nicht sehen, aber jetzt habe ich die Drehrichtung des Servos gekehrt und jetzt stimmt es und dreht richtig!
Ich danke trotzdem für die Hilfe. Der Tipp mit dem Serial Monitor war wirklich gut!
Ja genau! Jetzt habe ich eines das nach rechts und das andere nach links dreht. Vorher drehten beide nach rechts. Eines ist eingebaut, dass man von oben draufsehen kann, das andere kopfüber, so dass man den Boden sieht. Ich dachte die Drehrichtung müsste gleich sein, nur der Winkel ist vertauscht (wo das eine ganz links am Anschlag steht bei 0°, müsste das andere dann ganz rechts bei 180° stehen). Das hat aber so nicht funktioniert.