Forum: Mikrocontroller und Digitale Elektronik Servo LF-20 an AVR zickt. C 577 funktioniert!


von Jörg W. (hucky3000)


Lesenswert?

Hallo
Ich versuche krampfhaft einem LF-20 Servo vernünftiug zum laufen zu 
bringen.
Mit einem C 577 von Groupner funktioniert alles wie es soll.
Ich verwende einen Atmega 8  und programmiere in Bascom.
Vier verschiende Ansteurmöglichkeiten funktionieren mit dem C 577, aber 
mit dem LF-20 nicht. Ich brauche unbedingt diesen Typen wegen der hohen 
Kraftübertragung.
Ich habe es über PWM probiert, dem Servo-Befehl, einfacher Code mit 
Wait-Befehlen und eigene Routine - Timer als Interrupt (16-20ms 
probiert)

Wenn ich z.B. folgenden Code eingeben (funktioniert mit dem C577 
bestens)
fährt der LF-20 nur kurze Strecken hin und her, bzw. zuckt nur. Ab und 
an fährt er tatsächlich den Weg, den er soll. Gefühlt nach jedem 20en x 
hin und her zucken.
1
do
2
3
for i = 1 to 50
4
portb.1 = 1
5
waitus 600
6
portb.1 = 0
7
waitms 19
8
next i
9
10
wait 3
11
12
for i = 1 to 50
13
portb.1 = 1
14
waitus 2400
15
portb.1 = 0
16
waitms 19
17
next i
18
19
wait 3
20
21
loop

lass ich nur den obereb Teil laufen, geb einen neuen Wert für Waitus ein 
und überspiele das PRG, fährt der Servo hin wo er soll.

Ich versteh es nicht !!

Bitte um Hilfe

Hucky

von Joe F. (easylife)


Lesenswert?

warum die wait 3?
der servo braucht ein kontinuierliches signal.
mach aus den 50 schleifendurchläufen 200 und schmeisse das wait 3 raus.

: Bearbeitet durch User
von Jörg W. (hucky3000)


Lesenswert?

Wait 3 ist ne Pause, erst dann soll er in die andere Richtung.
Ich hab es mit 50,100,500 und sogar 1000 probiert.
Das Problem bleibt !
Hab vorhin irgendwo  gelesen, dass manche Servos zicken, wenn ich es 
ruchtig verstanden habe einen längeren Weg nur über "Teilstrecken" 
zurücklegen können.
Ich versuch es morgen mal mit einer Schleife oder einer Tabelle.

Hucky

von H.Joachim S. (crazyhorse)


Lesenswert?

LF-20 ist doch ein sog. Digitalservo? Eigentlich sollten die auch das 
alte 20ms-Format beherrschen - wer weiss?, normalerweise werden die aber 
deutlich schneller angesteuert. Versuch es mal mit 5 oder 7ms frame. Es 
ist auch besser mit konstanter Periodendauer als mit konstanter 
Impulspause zu arbeiten.
In deinem Fall:
0,6ms Puls 19,4ms Pause
2,4ms Puls 17,4ms Pause

Ansonsten ist das mit den delay-Kram natürlich sowieso Mist, für nen 
Test gehts aber. Soll der MC aber nebenbei auch was anderes machen, geht 
es so nicht.

von Joe F. (easylife)


Lesenswert?

Jörg W. schrieb:
> Wait 3 ist ne Pause

und die interpretiert der servo vermutlich als 'fahre an das eine ende'.
mach halt mal probeweise die wait 3 raus. so ne arbeit ist das ja nicht.

von Thomas W. (thomas_w808)


Lesenswert?

Allseits beliebter Fehler bei Anfängern: Spannungsquelle für Servo und 
uC nicht separat. Wenn der Servo zu viel Strom zieht bricht die Spannung 
ein, und eventuell resetet dein uC.
Hast  du Abblockkondensagoren am uC?
Probier doch mal die Bascominterne Servo routine.

von Stefan W. (swessels)


Lesenswert?

Thomas W. schrieb:
> Spannungsquelle für Servo und
> uC nicht separat. Wenn der Servo zu viel Strom zieht bricht die Spannung
> ein, und eventuell resetet dein uC.

Das wird es sein. Ein C577 kann (ohne Last!) problemlos mit dem µC 
zusammen aus ner 500mA Wandwarze versorgt werden. Die Digitalen 
benötigen eine niederohmige Spannungsquelle. Da kommen schon mal 
Stromspitzen von mehreren A  beim Anlauf zustande.
Am besten ist die Versorgung aus einem Akku mit geringem Innenwiderstand 
und vor Allem Pufferelkos in der Spannungsversorgung des Systems.

von Jörg W. (hucky3000)


Lesenswert?

So.
Der Servo läuft ;)
Dachte schon ich wäre doof...
Es lag tatsächlich an der Spannung.
Hätte ich auch selber drauf kommen können - ich hatte neulich erst 
ähnliche Probleme bei der Ansteuerung einer kleinen Pumpe.
Zur Zeit hab ich ein 1,5A Steckernetzteil an der Schaltung, dazu 1000uF 
parallel. Ohne Elko geht es nicht.
Netzteil mit mehr Leistung werde ich morgen bestellen. Dickeren Elko 
auch.

Vielen Dank für eure Hilfe :)

Hucky

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.