Die Steuerung eines Servos mit raspberry pi, mit dem hardware-PWM mit wiringPi

Habe ich versucht die Steuerung den servo mit softPwm mit der wiringPi-Bibliothek, aber diese hat das servo an zu Stottern.
Deshalb will ich die hardware-PWM-pin auf dem Raspberry Pi (GPIO18) mit der wiringPi-Bibliothek.
Aber ich verstehe nicht, wie stellen Sie die Frequenz auf 50 Hz, und ändern Sie den Arbeitszyklus, um eine Puls Breite im Bereich von 0.8 ms bis 2,5 ms.

Fand ich die Beziehung auf dem internet (ich weiß nicht, ob es richtig ist):

pwmFrequency in Hz = 19.2e6 Hz / pwmClock / pwmRange.

ich weiß, die Uhr divisor max-Wert ist etwas um die 4000 und der Raspberry Pi-PWM-Uhr hat eine Grundfrequenz von 19,2 MHz. also das gibt mir ~4,8 KHz.

bekam ich schon diese Einstellungen, die mir geben sollte ~50 Hz unter Verwendung der folgenden Beziehung:

//put PWM in mark-space mode, which will give you 
//the traditional (and easily predictable) PWM    
pwmSetMode(PWM_MODE_MS);
//setting ping GPIO 18 as a pwm output
pinMode(18,PWM_OUTPUT);
//Set clock divisor to 4000
pwmSetClock(4000);
pwmSetRange (10) ;

Ich nicht bekam ein Oszilloskop zu testen, das Ausgangssignal zu überprüfen, welche Einstellung was geändert. das macht es schwer, es selber herauszufinden.

Lange Geschichte kurz:
Kann mir jemand sagen, wie ich erreichen kann ein duty-cycle mit einer Impulsbreite von 0,8 ms bis 2,1 ms für die Steuerung eines Servos mit dem hardware PWM auf dem Raspberry Pi.

InformationsquelleAutor user2543697 | 2013-11-19
Schreibe einen Kommentar