Hallo Zusammen Ich vesuche schon seit ca. 3 Wochen einen Servo anzusteuern direkt über den OC1 Ausgang. Ich verwende dazu den Phase+Frequency correct Modus und erzeuge damit Pulse zw. 0.8 bis 1.9ms. Solange ich den Servo nicht anschliesse funktioniert auch alles (mit KO gemessen). Sobald ich den Servo anschliesse, resettet sich der Prozessor ständig. Meine Stromversorgung sollte ausreichend sein (DC/DC Converter max.2A Steckernetzteil max. 2A), ich habe auch schon eine elko(10u)+einen weiteres C (100n) direkt beim Anschluss des Servos von + nach - geschaltet um allfälige Störungen und Spitzenströme abzufangen. Hat jemand eine Idee was ich falsch mache?
Ich habe in einer ähnlichen Schaltung (allerdings ohne uC) auch sehr starke Spannungsschwankungen gemessen, sobald der Servo läuft. Habe sie ebenfalls abzufangen versucht, aber vergeblich. Die Spanung schwankt dauernd um +- 1 V.
Danke, in diesem Fall ist geteiltes Leid nicht gleich halbes Leid. Hast Du das Projekt gestoppt?? Falls Du noch Tips hast ich wäre dankbar.
Lies dir mal die ATMEL Note AVR040 und ebenso AVR042 durch. Für dich ist wichtig dass die Servo Stromloop nicht uber das Controller Board läuft. Block die Controller Stromversorgung zusätzlich mit einem LC Glied ab und beschalte den RESET Pin wie angegeben.
Das tönt doch schon vielversprechender. Das werde ich mal probieren. Noch eine Frage, hattest Du das gleiche Problem? Wenn ja hat es anschliessend funktioniert?
Hab jetzt den Servo separat an die Speisung angehängt, jetzt klappts auch mit dem Servo! Besten Dank an Michi Kupfer.
Der Servo verursachte bei mir einfach starke Schwankungen in einer A/D-Messung (via Parallele Schnittstelle und TLC547 A/D-Wandler). Für meine Anwendung störte das nicht, da ich dann einfach den Mittelwert über einige Messungen genommen habe, klappte hervorragend. Aber ja, wenn wir gleich beim Thema sind: Wie einfach bzw. schwer ist es eigentlich, einen Servo per Microcontroller (In meinem Fall wird es schon bald ein ATmega8 sein freu) anzusteuern? Gruss Michael
Ich kenne den ATMega8 überhaupt nicht aber vielleicht hat er ja auch einen sogennanten phase+frequency correct mode im Timer eingebaut. Bei diesem Modus zählt der Timer von 0 auf max Wert(welcher vorgegeben werden kann) und danach vom max. Wert auf 0 usw. Mit dem max Wert kann man die Periodendauer angeben (so ca. 20ms für einen Servo) und mit dem compare match Wert kannst Du die Pulsbreite bestimmen, denn wenn der Timer von 0 auf max zählt und den compare match Wert erreicht wird z.B. OC1 gesetzt und wenn der Timer von max auf 0 zählt und und den compare match Wert erreicht wird OC1 gelöscht usw. In diesem Modus kannst Du es relativ einfach programmieren. Ich habe dir meinen C Code beigelegt, kannst ja mal reinschauen (ist aber nicht so schön programmiert). Gruss Jens.
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.