Winkel berechnen in servo.write()

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.

Grüsse

Stef

Leider verbirgst du den Fehler vor uns und auch wohl vor dir selber.

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!

Also hast Du 2 Servos. Bei gleicher Ansteuerung dreht eins nach rechts und das andere nach links?
Grüße Uwe

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.

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