Hallo, möchte gerne ein Servo (Modellbau, JR-kompatibel) mit Atmega32 ansteuern und hab jetzt auch schon allerlei Beiträge dazu gefunden und durchgestöbert. Mir ist allerdings noch nicht ganz klar, wie ein entsprechendes PWM-Signal zur Servosteuerung aussehen muss. Allgemein: benötigt wird ein PWM-Signal mit einer Pulsbreite von 20ms. Das Tastverhältnis bestimmt den Stellwinkel. So weit, so gut... Wie muss denn aber das Signal in der Realität beschaffen sein? Beginnt der Servo mit der Auswertung bei H oder L? Wie muss das Tastverhältnis für Mittelstellung aussehen, Pulsbreite 50%, also 10ms H und 10ms L ? Wäre super, wenn jemand ein paar Hinweise oder Tipps hätte. Mein erstes Test-Prog hat auf jeden Fall bis jetzt nicht funktioniert, was wohl an einem falschen PWM-(Mis(t))verständnis liegt...
> Allgemein: benötigt wird ein PWM-Signal mit einer Pulsbreite von > 20ms. Du meinst die Periodendauer. Üblicherweise ist die 20ms. Aber wenn die z.B. nur 10ms lang ist, macht das auch nichts. > Das Tastverhältnis bestimmt den Stellwinkel. Nein, nicht das Tastverhältnis, sondern nur die Pulsdauer bestimmt ihn. > Wie muss denn aber das Signal in der Realität beschaffen sein? > Beginnt der Servo mit der Auswertung bei H oder L? Er mißt die Impulsdauer, also die Dauer von der positiven zur negativen Flanke. > Wie muss das Tastverhältnis für Mittelstellung aussehen, Pulsbreite > 50%, also 10ms H und 10ms L ? Nein. Die Pulsdauer für Mittelstellung liegt bei 1,5ms. Der Bereich für die Pulsdauer liegt grob bei 1 bis 2 Millisekunden.
Hier sind ein paar AVR-Basteleien in Assembler, die mit Servoimpulsen zu tun haben: http://www.hanneslux.de/avr/mobau/index.html ...
Hier mal ein Beispiel in C: http://www.schoeppl.info/de/elektronik/servotester/servotester.aspx Gruß Gerd
Moin Leute, frohes Neues!!! Danke für die Infos, Servo läuft jetzt! Super!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Dann hab ich noch eine Frage: gibt es eigentlich ein Spezial-Ic, mit dem man mehrere Servos gleichzeitig steuern kann und das man seinerseits bequem seriell per uC ansteuern kann, nach dem Motto "Servo1 auf Stellung 88 bitte und Servo 9 auf Position 23"? Das würde bei mehreren Servos Controllerkapazitäten sparen und auch Anschlüsse.
Hallo, Es gibt ein Projekt, glaub für n Mega8 der über I²C 10 Servos ansteuert oder so. Hab blos den Link nicht mehr parat - musst hald bei google suchen! MFG Mixer [edit]: http://www.kreatives-chaos.com/artikel/servocontroller-rnkc10 http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14220&highlight=
> gibt es eigentlich ein Spezial-Ic, mit dem man mehrere Servos > gleichzeitig steuern kann und das man seinerseits bequem seriell per uC > ansteuern kann, nach dem Motto "Servo1 auf Stellung 88 bitte und Servo 9 > auf Position 23"? Das sollte mit einem AVR kein Problem sein. Das Beispiel bei Hannes http://www.hanneslux.de/avr/mobau/7ksend/7ksend02.html zeigt, wie man einfach Impulse für mehrere Servos erzeugen kann. Dazu das ganze ADC-Gerödel rauswerfen und die Positionen in einem SRAM-Array halten. Wenn man den AVR dann mit einem Baudratenquarz taktet, sollte es kein Problem sein, per UART empfangene Kommandos auszuwerten und die Positionen im SRAM zu aktualisieren. Da Timer1 zwei separate Compare-Einheiten hat, kann man ohne Weiteres zwei separate Servo-Ketten laufen lassen, das reicht für 16 bis 20 Servos. Mit einem Tiny2313 sollten auf diese Art bis zu 14 Servos gleichzeitig ansteuerbar sein. ~
Wenn hier schon andere "Ihren" Code verbreiten, dann ich auch mal: Beitrag "Re: Problem mit PWM und Servo"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.