Die Mittelstellung entspricht normalerweise einer Einschaltzeit von etwa 1,5 ms. Oberer und unterer Anschlag liegen irgendwo im Bereich von 2,1 ms bzw. 0,9 ms. So wie ich das sehe gibst du in deinem Code keine Einschaltzeit ein, sondern ein PWM-Tastverhältnis. Das musst du dann eben noch über die eingestellte PWM-Frequenz umrechnen. Bei 50 Hz (Periodendauer 20 ms) entsprächen 1,5 ms dann 1,5 ms/20 ms = 0,075 = 7,5%.Und wie kann ich herausfinden, wie ich den Maximalausschlag nach links und rechts sowie die Mittelstellung über den Code einstellen kann?
Die Zuordnung zwischen Einschaltzeit und eingestelltem Winkel ist nicht immer ganz eindeutig. Solltest du exakte Winkel anfahren wollen bleibt dir nicht viel anderes übrig als die entsprechenden Signale durch ausprobieren herauszufinden. Ich hatte den entsprechenden Fall schon und habe mir dafür eine kleine Vorrichtung gebastelt:
Bild hier
Modellbauservos sind so parametriert, dass sie die vorgegebene Stellung so schnell wie möglich anfahren. Sprich: hohe Beschleunigung, schnelle Bewegung, abruptes Abbremsen. Falls du das meinst kannst du wie Peter empfohlen hat Zwischenpositionen vorgeben (z.B. einen gleitenden Mittelwertfilter über die Steuergröße legen). Falls der Servo zittert und "falsche" Bewegungen machst solltest du überprüfen ob bei deinem Signal zwischen Pi und Servo irgenwas nicht stimmt (einfach mal mit einem Oszilloskop abgreifen sofern vorhanden). Falls du unterschiedliche Stromquellen zur Versorgung von Pi und Servos verwendest musst du ausserdem sicher stellen dass die Massen verbunden sind.Wie kann ich das etwas - im Englischen würde man "smoother" sagen - machen?
Lesezeichen