Servoansteuerung: Jitter ("springendes") PWM Signal

Guten Morgen

Mit diesem Thema war ich bisher hier unterwegs. Da es aber um Servoansteuerung ansich geht und nicht um dir Combo Servo + Motor starte ich hier ein neues Thema.

Calliope Mini 1.0 / MakeCode
Servo mit 5V Spannung extra versorgt.
Minuspole der Servo-Batterie und Calliope-Mini sind verbunden.

Beobachtetes Verhalten:

Das Servo verhält sich nicht wie erwartet. Obwohl ständig der gleiche Winkel geschrieben wird, führt es unkontrollierte Bewegungen durch. Bewegt das Servo die Lenkung eines Modellautos an, kann das Auto nicht gesteuert werden.

Wird der Servowinkel nur bei Veränderung geschrieben verhält sich das Servo wie erwartet.
Aus meiner Sicht ist da aber schon mehr Wissen notwendig, Anfänger kann das sicher zur Verzeweiflung bringen.

Um diese Problem zu analysieren habe ich aus der Arbeit ein Fluke Scopemeter ausgeborgt und dies elektrischen Signale untersucht. Diese Messungen zeigte, dass das PWM-Signal tatsächlich jittert/flackert/springt.

Wird der Servowinkel nur bei Veränderung geschrieben ist das PWM-Signal stabil.

Das Servo führt genau die im PWM Signal gesendeten Bewegungen aus. Meine Vermutung (im anderen Thread beschrieben) dass eine Pegelwandlung (3,3V --> 5V) notwendig ist hat sich damit nicht bestätigt.

Ich kenne die Details beim Calliope nicht, meine Vermutung ist aber folgende: Werden die PWM Register im Nordic uC geschrieben kommts zum Jitter.
Werden die PWM Register ständig beschrieben tritt der Jitter auch ständig auf.

Hier die Programme und die Oszibilder:

Fall 1: in „Dauerhaft“ ständig Servo-Winkel schreiben:
Auto_ServoTest

Dieses Programm generiert ein „springendes“ PWM-Signal an P2: Das Servo führt genau diese ungewollten Bewegungen auch aus.

Fall 2: wird der Servo-Winkel nur bei Veränderung des Wertes geschrieben ist das Signal „sauber“:

Hierzu das Oszibild:

Viele Grüße
Christian

mini-AutoServoTest.hex: mit Jitter
mini-AutoServoTestOpti.hex: ohne Jitter

mini-Auto_ServoTestOpti.hex (572,0 KB) mini-Auto_ServoTest.hex (571,7 KB)

Hallo zusammen!

Bis heute haben wir leider keine Lösung zu dem störenden Verhalten.

Mittlerweile haben wir unser ferngesteuertes Auto mechanisch und elektrisch fertig. Motoransteuerung über externe H-Brücke mit L293D (mit internen Dioden). Die H-Brücke steuern wir mit normalen Pins an (kein PWM, einfach 0 oder 1 - digital eben :slight_smile:

Als Fernsteuerung dient ein zweiter Calliope an dem ein Poti als Lenkrad angeschlossen wurde. Taste A / B für vor / zurück.

Motoransteuerung funktioniert astrein: vor/zurück.

Leider immer noch das Thema mit dem Servo: immer wenn wir den Befehl „Setze Winkel von Servo“ ausführen zuckt das Servo. Teilweise ist kann man mit dem Auto Fahren, dann wieder nicht. Jedenfalls trübt es den Fahrspaß und das Erfolgserlebnis deutlich.

mini-Auto_HBrueckeLenkungFunk.hex (577,1 KB)

1 Like

Schau mal, Du kannst den Servo (und 15 weitere) auch an ein PCA9685-board anschließen. Werden dann halt viele Kabel, aber klappt sicher!


Damit könnte man auch die H-Brücke ansteuern!