PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Digital Servo von Conrad, VSD 1 Problem



Movie85
30.04.2009, 15:22
Hallo zusammen,

ich hab ein Problem mit dem Servo:
Ich hab mir bei Conrad ein 5€ Servo VSD-1 gekauft, welches ein Digitales ist.
Jetzt hab ich mit meinem Atema8 versucht das ding anzusteuern, aber es tut sich GARNICHTS!
Wenn ich den PWM Eingang vom Servo ganz kurz an 5V halte, dann bewegt es sich auch, es dreht sich dann in eine (zufällige) Endposition (also 0° oder 180°)

Ich benutze folgenden Code:


$regfile = "m8def.dat" ' specify the used micro

$crystal = 8000000 ' used crystal frequency


Config Servos = 1 , Servo1 = Portb.0 , Reload = 10

Config Portb = Output

Enable Interrupts


Servo(1) = 10 '10 times 10 = 100 uS on



Dim I As Byte

Do

For I = 10 To 140

Servo(1) = I

Waitms 500

Next



Loop

End

ich hab den Takt vom internen Oszi auf 8 MHZ gestellt(Fuse)
Wenn ich eine Led an den Ausgang hinhänge, flackert diese auch bei länageren Takten
Mein MC und die Servo ist an der Selben Spannungsquelle(5V, 2.5A) angeschlossen...

Vielleicht kann mir jemand helfen?

Bis dann,

Tom

Sauerbruch
30.04.2009, 17:31
Also, bei Modellbau-Servos (und nur über die kann ich was sagen) bewegen sich die Impuls-Längen so etwa zwischen 0,8 und 2,2 ms. Dafür gibt´s etwa 20mal pro Sekunde einen Impuls.
Falls Dein Servo ähnliche Bedürfnisse hat (und das sollte eigentlich so sein), sehe ich 2 Probleme:

1. fängt Deine Impulslänge bei 0,1 ms an. Das kann m.E. kein Servo in eine sinnvolle Position ummünzen. Bis Du bei 0,8 ms angekommen bist, muss I immerhin 70mal erhöht worden sein - und das dauert bei Deinem Code 35 Sekunden. Hast Du schon mal so lange gewartet?

2. Weiß ich nicht, ob es Servos reicht, nur alle 0,5 Sekunden einen Impuls zu bekommen.

Versuch doch mal einen Code zu stricken, der Impulse zwischen 1 und 2 ms generiert und den Servo-Befehl 20 mal pro Sekunde ausführt!

Willa
30.04.2009, 17:54
Hi! @Sauerbruch: Mit den 0,5 Sekunden hast du einen Denkfehler... Passiert mir auch immer. Für das richtige PWM Signal sorgt die "servo" routine von Bascom ganz alleine.
@Tom:
Bist du dir mit den 8Mhz ganz sicher? Programmiere doch einfach mal ne Wartezeit von 10sec, toggle dabei eine LED und stopp die Zeit von Hand. So kann man wenigstens eine Fehlerursache ausschließen.
Müsstest du in deinem code nicht noch swstack, hwstack und framesize angeben...? Clock division in den Fuses ist aus?

Movie85
30.04.2009, 18:33
Hi Leutz,
danke für die Antworten, ich hab gerade keine Möglichkeit es zu testen, aber ich werd mal versuchen die Zeiten etwas zu ändern...
Mit den 8Mhz: Ich hatte davor 1Mhz(Standarteinstellung) ausprobiert, und da hats auch nicht geklappt, ich dachte, es ist vielleicht zu langsam...
Ich muss ehrlich zugeben, dass ich noch nie framesize etc benutzt hab:D
Probier ich dann gleich mal aus!

Vielen Dank nochmal

Tom

Movie85
01.05.2009, 12:27
Hallo,
sry für den Doppelpost, aber ich hab jetzt mein Problem gefunden, nachdem ich AVCC mit 5V und AGND mit Gnd verbunden habe, zeigt die Servo reaktion, jedoch zuckt diese immer nur und fährt ständig herum!

Bis denne,

Tom

Willa
01.05.2009, 12:45
...und was ist jetzt mit der Taktfrequenz...? Kontrolliert? Ohne zu wissen ob die auch 100% korrekt eingestellt ist bringt es nichts wenn wir hier herumraten. Du hast die Fuses auf externen 8Mhz Quarz gestellt? Hast du denn auch einen Quarz angeschlossen...?

Movie85
01.05.2009, 13:20
Hi,
nach langem rumprobieren hab ichs nun endlich hinbekommen! Danke euch!
Was ich gemacht hab:
Erstmal Framesize etc. angegeben, AVCC und AGND richtig angeschlossen
Und was ich vergessen hatte:
Minus vom Motor und Minus vom MC verbinden! Nachdem hats nimmer gewackelt!

Danke nochmal!

Tom