Probleme mit Servo-Ansteuerung

Hallo,

experimentiere gerade mit einem Servo (es ist ein Carson CS3) an meinem Arduino. Allerdings musste ich feststellen, dass er zwischen 0° und 5° keine Veränderung macht. Außerdem brummt er im Bereich zwischen 0° und 4°. Muss ich bei der Ansteuerung eventuell etwas beachten oder ist der Servo defekt? Danke schon mal im Voraus!

MfG SgtTortilla

Hallo und willkommen im Forum!

Ein Servo wird durch ein zeitbasiertes Signal angesteuert. Die minimale und die maximale Zeit kann man kalibrieren.

Bei der Bibliothek VarSpeedServo verwendet man normalerweise attach(pin) mit den Standardzeiten 544µs für min und 2400µs für max. Durch attach(pin, min, max) kann man diese Werte an den eigenen Servo anpassen. Versuch mal, ob Du eine Verbesserung erzielen kannst.

SgtTortilla: Hallo,

experimentiere gerade mit einem Servo (es ist ein Carson CS3) an meinem Arduino. Allerdings musste ich feststellen, dass er zwischen 0° und 5° keine Veränderung macht. Außerdem brummt er im Bereich zwischen 0° und 4°. Muss ich bei der Ansteuerung eventuell etwas beachten oder ist der Servo defekt?

Das hört sich an als wenn Du den Servo auf seinen mechanischen Endanschlag laufen läßt.

Wenn Du Deinen Servo so an den Endanschlag laufen läßt, ist er durch diese Falschansteuerung nicht sofort kaputt, sondern das was Du als Brummen wahrnimmst, belastet intern die Servomechanik und führt erstmal nur zu vorzeitigem Verschleiß, so dass die Positioniergenauigkeit durch mechanischen Verschleiß zu leiden droht.

Vielleicht verwendest Du besser den attach-Befehl mit den optionalen min und max Parametern;

servo.attach(pin, min, max);

Die Standardwerte der Servo-Library sind wohl nur min=544 (für 0° Servowinkel) und max=2400 (für 180° Servowinkel.

Ich weiß nicht, was für einen Servotypen die Programmierer der Library da zugrundegelegt haben, aber meines Wissens nach liegen Standardservos eher bei 1000µs für 0° und 2000µs für 180° (Mittelstellung entsprechend bei 1500µs.

Also ggf. die Initialisierung mal mit den Werten für min und max anpassen, dass es für den von Dir verwendeten Servoce mit den Drehwinkeln passt und diese beim Ansteuern im Bereich 0...180 nicht an den Endanschlag gefahren werden!

Bei Servos mit unbekannten Steuerzeiten also lieber nicht

servo.attach(pin) ;
sondern
servo.attach(pin, 1000, 2000)

für erste Versuche verwenden, wenn der Servo in die Extrempositionen 0° und 180° gefahren werden soll!

Danke für die Antworten! Genau den Befehl zur Kalibrierung habe ich gesucht. Jetzt läuft er Problemlos von 0 bis 180