Forum: Mikrocontroller und Digitale Elektronik Servo Ansteuerung mit ATMega128


von Jens Kaiser (Gast)


Lesenswert?

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?

von Michael (Gast)


Lesenswert?

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.

von Jens Kaiser (Gast)


Lesenswert?

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.

von Kupfer Michi (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Jens Kaiser (Gast)


Lesenswert?

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?

von Jens Kaiser (Gast)


Lesenswert?

Hab jetzt den Servo separat an die Speisung angehängt, jetzt klappts
auch mit dem Servo! Besten Dank an Michi Kupfer.

von Michael (Gast)


Lesenswert?

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

von Jens Kaiser (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.