Servo ansteuerung

Gast #51589
Lesenswert?
• ▲
▼
Hallo,
ich habe von meinen Bruder ein leicht defektes Multiplex Servo bekomme
(ein Zahnrad ist nicht mehr ganz ok). Und das wollte ich nun Ansteuern.
Leider fährt es nur ganz nach rechts bis zum Anschlag.
Was ist an diesem Code falsch?
Ich habe den Timer so Inhaliziert das er alle 0,1ms ein Timerinterupt
liefert.
SIGNAL(SIG_OUTPUT_COMPARE2)    //intruptcpmparematch vom timer 2
{
stimer++;
servo++;
if (servo == 200){      //alle 20ms mache signal
sbi (PORTD, 5);        //ausgang setzen
servo = 199;        //variable zurücksetzen damit schleife gleich beim
nächsten durchlauf betreten wird
servoi++;
if (servoi == 7){      //impulsbreite in 0,1ms schritten
cbi (PORTD, 5);        //wenn impulsbreite erreicht dann kanal
zurücksetzen
servo = 0;        //und aus der schleife raus
}
}
}
Danke schonmal.
Gruß
Peter
Gast #51590
Lesenswert?
• ▲
▼
Hallo Peter,

leider bin ich nicht mit dem C-Code vertraut, programmiere nur in ASM.

Nur nochmal zur Info...

Das Servo erwartet als Steuersignal folgendes:

loop:
Ausgang für 20ms auf LOW setzen
Ausgang für 1.5ms auf HIGH setzen
springe nach loop

Der HIGH-Wert von 1.5ms setzt das Servo in die Mittelposition.
Änderst Du zur Laufzeit auf 1.0ms, fährt das Servo nach ganz rechts.
Bei 2.0ms nach ganz links.

Wenn Du Multiplex-Servos hast, dann sollte die Orangene Leitung für das
Steuersignal sein.

Gruß,
Andre.
Gast #51592
Lesenswert?
• ▲
▼
Hallo,
ich habe im vorherigen Posting noch vergessen das ich den Mega32
verwende und das nur der Timerinterupt ist. Also nicht der vollständige
Code.

@Andre Das habe ich schon gewusst aber trotzdem danke. Mein Servo hat
nur ein gelbes Kabel. Des wird wohl des steuer signal sein.

@wizz wenn er in C ist dann wäre es gut wenn du ihn posten könntest.

Gruß
Peter
Gast #51593
Lesenswert?
• ▲
▼
Hallo,
Ich habe den fehler jetzt endlich gefunden. servoi muss ja nach jeden
Impuls zurückgesetzt werden. Jetzt geht es wunderbar. Es zittert auch
nicht wie es bei meinem Bruder manchmal war.
Gruß
Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren