Re: servo pwm mit c erzeugen
Zitat:
Zitat von JoSch1337
... rn-control board ... pwm signal für einen servo ...
Geht sicher problemlos für servos, zu brushless kann ich nix sagen (Erfahrung beschränkt sich auf die laufenden PC-Lüfter :) ),
Zitat:
Zitat von JoSch1337
... bis jetzt vergeblich versucht ein sauberes pwm signal ...
Was heisst "sauber" ? ? ?
Zitat:
Zitat von JoSch1337
... rn-control board ... dass ich exakt dieses signal mit dem atmel wohl nicht erzeugen kann?...
Wie exakt??
Die (analogen) Servos wollen in einem Zyklus von 20 ms (das sind die 50 Hz) ein positives Signal von 1 bis 2 ms für Anschlag eine Seite bis Anschlag andere Seite. Es gibt Aussagen, dass die Zykluszeit in einem weiten Bereich schwanken darf, vermutlich sogar mehr als 40 bis 60 Hz. Wichtig ist das Verhältnis von positivem Signal zur "Pause". Also würde ich an Deiner Stelle nicht die absolute Genauigkeit fordern - abgesehen davon, dass Du mit dem Quarz sowieso gut bestückt bist. Ich fahre Servos mit dem internen Oszillator (mit Abweichungen im Prozentbereich, je nach Temperatur) und es gibt null Probleme.
Irgendwie habe ich rausgelesen, dass Du die PWM in Software realisieren willst. Dafür also :
- mach Dir eine Interruptroutine, die in der Sekunde 50 mal aufgerufen wird.
- In dieser Routine zähle eine Variable - sagen wir mal von 1000 - abwärts.
- Zu Beginn der Zählerei schalte den Ausgang für den Servo auf high
- Wenn Du bei dem gewünschten Signalanteil irgendwo zwischen 100 und 200 bist, dann schalte den Ausgang bis 1000 auf low.
- bei 1000 setze die Variable wieder auf 0
Der Ausgang kann aber den Servo NICHT antreiben, der schafft irgendwo um die 20 mA - der Servo braucht viel mehr. Der Ausgang bringt Dir nur das Signal. Also:
RNControl_GND <--------> GND Servo
RNControl_Pinx <--------> SIG Servo
Netzteil o.ä. (+) <---------> (+) Servo
Netzteil o.ä. (-) <---------> (-) Servo
Du siehst, dass Du RNControl und Netzteil und Servo mit einem GND-Pegel fährst.
Viel Erfolg,