PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servoansteuerung funktioniert nicht richtig



mameise
02.02.2011, 18:37
Hallo zusammen,

ich habe ein Problem, aus dem ich wieder mal nicht schlau werde.
Ich habe hier diverse (NEUE) Servos liegen:

2xES-05 HT
1xES-05
1xRS-3

Alle vom Conrad und wie gesagt neu.
Leider kann ich mit meinem Atmega8 immer nur den ES-05 ansteuern,
die anderen machen keinen mux (ausser am Anfang wenn sie Saft bekommen natürlich). Ich hab an meinem Atmega8 2 Servoanschlüsse gemacht, indem ich mir 2 3polige Stecker auf mein Steckbrett montiert habe. Strom bekommen die 2 Servos entweder die 5V des Atmega oder ich nehme ein externes Akkupack für Servos, hab beide Wege probiert.
Ansteuern will ich die Servos über den Befehl in Bascom:
So sieht das aus: (Atmega läuft mit externem Quarz auf 16Mhz)


$regfile = "M8def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100

Config Servos = 2 , Servo1 = Portd.6 , Servo2 = Portd.7 , Reload = 10
Const Startwert1 = 70
Const Endwert1 = 180
Const Startwert2 = 70
Const Endwert2 = 180
Servo(1) = Startwert1
Servo(2) = Startwert2
Do
Waitms 100
Servo(1) = Startwert1
Waitms 100
Servo(2) = Endwert2
Wait 8
Servo(1) = Endwert1
Waitms 100
Servo(2) = Startwert2
Loop
End


Wie gesagt, scheinbar muss es gehen, da ich den einen Servo an beide Anschlüsse stecken kann und er bewegt sich. Er war auch der Referenzservo für den Wert 70-180, passt genau. Aber die anderen, egal welcher, zuckeln nichtmal, gar nix. Keine Regung...
Kann es echt sein, das die einfach nicht mit dem Atmega8 gehen oder was kann ich noch machen? Leider bekomm ich den ES-05 hier bei mir so schwer...

Danke für eure Hilfe :)
Gruss

Dani-Bruchflieger
03.02.2011, 16:16
Hi,

hmm - fürs erste würde ich fragen wollen, ob du nicht lieber dem Servo etwas mehr zeit geben solltest - 100ms sind 0,1 Sekunde - das ist echt kurz...

hast du schon mal mit wait 1 oder höher probiert - nur zum test?

mameise
03.02.2011, 19:33
Hi Dani,

mittlerweile habe ich noch einige Fehler gefunden. Zum einen war wirklich der Wert zu klein. Muss bei meinen Servos zwischen 50 und 180 liegen, und zum anderen hatte ich die die Ports/Pins nicht noch extra als Output definiert. Ein Blick in die Doku hat mir geholfen und nun funktionieren 5 Servos wunderbar nebeneinander.

Gruss