PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo mit ATmega88 ansteuern



rob_88_20p
17.01.2009, 14:14
Hi Leute

Ich habe eine Frage zum Thema "Servosteuerung"

Ich will nur einen Servo ansteuern, habe jedoch keine Ahnung wie das gehen soll.

Ich verwende einen Atmega88 mit 1Mhz

Ich will den Servo über die Pins
DDRB = PB1 PB2 PB3, ich weis nicht ob man dazu GND, VCC oder eifach drei freie Pins braucht. Die Pins PB1, PB2, PB3 und (wenn nötig GND) wären ideal da diese direkt neben einander liegen.

Am besten wärs wen Jemand einen fertigen Code hat, denn ich bin leider kein Genie in der C programmierung.

Ich wollte eigentlich mit den zwei Schaltern die ich hab etwas machen.

z.B. wenn ich den rechten Schalter betätige das der Servo dan nach rechts dreht und wenn ich den Schalter los lasse stopt, das gleiche links herum, die pins für die Schalter sind PB4 und PB5.

Ach ja

Wie viel mA hat eigentlich so ein Servo

Man solte ja den Atmega nicht mit mehr als 20mA belasten ?
Hier ist noch der Bestückungsplan des Robots

http://netzdateien.ne.funpic.de/Roboter_Best%FCckungsplan.JPG

Danke Schon mal im vorraus für die Antworten.

Ich hoffe Ihr könt mir helfen.

Gruss Rob_88_20p

Besserwessi
17.01.2009, 15:29
Die 3 Leitungen zu den normalen Servos sind GND, VCC und ein PWM Signal zum Steuern. Von der Software am einfachsten wird es wenn man das PWM Signal von timer 1 in Hardware erzeugt.

Die Servos brauchen von Vcc rund 500 mA, das hängt aber sehr vom Servotyp ab. Das PWM Signal wird nur ganz gering belastet.

rob_88_20p
17.01.2009, 16:23
ok danke für die Antwort

dennoch weis ich nicht wie ich das anstellen soll

wie kann ich den VCC und GND mit delay takten

man sollte doch irgendwie zwischen GND und VCC eine verzögerung um glaub ich 20ms und bi dem PWM signal bruacht man 1-2ms oder irgend wie so

wie kann ich den GND und VCC takten ?

Hubert.G
17.01.2009, 16:55
GND und VCC wird nicht getaktet.
Siehe hier: www.roboternetz.de/wissen/index.php/Servo

rob_88_20p
18.01.2009, 19:23
Wie genu muss ich das den amchen mit dieser Periode und diesen 1-2 ms???

Dirk
18.01.2009, 20:07
Wie genu muss ich das den amchen mit dieser Periode und diesen 1-2 ms???
In dem Wiki-Artikel, den dir Hubert.G empfohlen hat, steht sogar ein C-Beispiel. Es gibt auch hier im Forum viele C-Beispiele für die Servo-Ansteuerung, geh mal suchen!

Gruß Dirk

P.S.: Wenn du ein paar Buchstabenfehler vor dem Senden editierst, wird das, was du schreibst, besser lesbar:
genu = genau
den = denn
amchen = machen

Hubert.G
18.01.2009, 20:52
Du teilst dir die 180°, die so ein Servo in etwa kann, auf die 1ms auf. Je genauer die Position sein soll die du anfahren willst, um so genauer muss die Zeit sein.

rob_88_20p
20.01.2009, 09:44
Bis jetzt habe ich einfach einen meiner Motorausgänge mit 9000 us so getaktet, das er sich immer umpolt, dann habe ich das VCC und GND Kabel des Servos an die beiden Kontakte gehalten und wenn ich dann das PWM Kabel an GND halte, dreht sich der Servo nach rechts, bis zum Anschlag.

Aber wie kann ich den Servo in die andere Richtung steuern ?

P.S. Das mit dem Dreckfuhler tut mir leid :oops:

oberallgeier
20.01.2009, 09:54
Hi rob_88_20p,

ein bisschen Suchen hilft bei Fragen immer - bis in hohe Schwierigkeitsebenen. Hier ein Posting (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=419755#419755) aus jüngerer Zeit für einen der auch nicht suchen konntewollteesgetanhat. In anderen Threads und Postings findest Du die Antwort darauf, was passiert, wenn Du die Servoversorgung an den Controller anschließt - nur Probleme, weil der Controller die hohen Ströme nicht liefern kann.


... Das mit dem Dreckfuhler tut mir leid ...Uns eben auch. Schlampig geschrieben und nix selber recherchiert - da kommt auch bei mir Freude auf.