Werbung
Also:
Bei meinem Testprogramm:
passiert folgendes: er läuft rechtsrum mit kleinen verzögerungen.Code:$regfile = "m8def.dat" $crystal = 14745600 Config Servos = 1 , Servo1 = Portc.5 , Reload = 10 Config Portb = Output Enable Interrupts Dim I As Word Do Servo(1) = 100 Loop End
bei diesem Programm:
passiert folgendes: er dreht sich nach rechts mit größeren verzögerungszeitenCode:$regfile = "m8def.dat" $crystal = 14745600 Config Servos = 1 , Servo1 = Portc.5 , Reload = 10 Config Portb = Output Enable Interrupts Dim I As Word Do Servo(1) = 200 Loop End
jo danke erst mal das iss wahr mit dem config portc=output aber leider funzt es immer noch nicht.
das mit den ausfallzeiten ist so gemeint:
wenn servo(1)=100 dann:
dreht sich fast kontinuierlich nach rechts
wenn servo(1)=200 dann:
dreht sich immer kurz stoppt dann für ich denke die gleiche zeit (ca 200 ms) und läuft dann wieder diese zeit u.s.w. das ganze nach rechts.
ich will das nun so umdrehen das der fast kontinuierlich nach links läuft und nicht nach rechts
Hallo x-ryder,
hmm, jetzt hab ich das ganze hier mal aufgebaut und sehe es mir mit dem Oszi an, saubere Impulse, kein Wackeln mit diesem Code:
Das Servo bewegt sich 2 Sekunden nach links und 2 Sekunden nach rechts und das wiederholt sich dann.Code:$regfile = "m8def.dat" $crystal = 14745600 Config Servos = 1 , Servo1 = Portc.5 , Reload = 10 Config Portc = Output Enable Interrupts Do Servo(1) = 200 Wait 2 Servo(1) = 100 Wait 2 Loop End
Vielleicht hast du ja noch irgendwo ein elektrisches Problem? Wie ist Reset vom Mega8 beschaltet? Kommen Störungen vom Servo in die Mega8-Elektronik? Stabile Versorgung,Kondensatoren,etc.
Gruss, Michael
ne jetzt macht er 2 sek ne rechtsdrehung und dann 2 sek wieder dieses gewackele.
aber am board kanns nicht liegen das iss nen fertig aufgebautes Controllerboard was bis jetzt immer gut funktioniert hat...
sogar mit nem glcd hat es keine störungen verursacht.
gibt es noch eine hardwaremäßig bedingte ursache, vielleicht liegt es am servo selbst?
Martin
Ich glaub ich weiss jetzt waran es liegt...
Ich hab beim modifizieren das poti ausgebaut und keine Widerstände reingesetzt...
Könnte das die Lösung sein?
Und wenn ja dann: Was für Widerstände müssen da rein?
Martin
Hallo x-ryder,
Arrrrgh, wie soll denn die Servoelektronik regeln ohne Rückkopplung?das poti ausgebaut und keine Widerstände reingesetzt...
Wert ist 2mal 1/2er Potiwert, etwas drüber schadet nicht. Beispiel: Poti5kOhm -> 2 Widerstände je 2,7kOhm.
Gruss, Michael
Ich denke mal, das meine Frage hier am besten reinpasst, damit kein neues Thema eröffnet werden muss. Wenn nicht bitte nicht lynchen!![]()
Ich habe folgendes Problem:
Ich will mit einem 2313 mehr als zwei Servos ansteuern, und habe mir eine Routine zusammengebastelt, mit der zumindest das Anfahren von zwei Positionen funktioniert. Nun kommt aber erschwerend hinzu, daß der Postionswechsel laaaaangsaaaam von statten gehen soll. (ein bis zwei Sekunden von Pos.1 nach Pos.2). So weit so gut etwas rumgepfrimelt und im Simulator klappts auch einwandfrei. Ich freu mir ein Loch in den Bauch, schwupps alles in den 2313 gebrannt und erwartungsvoll den Testschalter umgelegt.
Und was passiert: NÜSCHTS
Das sich alle 20ms wiederholende Signal was der µC von sich gibt bleibt stur bei 1,5ms - bei allen acht Ausgängen versteht sich. Wat mach ich falsch????
Anbei hab ich mal die wichtigtens Programmpunkte:
(weiß leider nicht wie ich die Progschnipsel anders Posten kann)
$regfile = "2313def.dat"
$crystal = 10000000
Dim A As Byte
Dim B As Word
Dim C( 8 ) As Word
Dim D As Word
Dim E As Word
.
C(1) = 3750
Config Portb = Output
Config Portd = Input
Portb = 0
Kontrolle:
If A = 8 Then
For E = 1 To D
Next
End If
If Portd.0 = 1 Then Gosub Decr1 Else Gosub Incr1
.
If A > 7 Then A = 0
If A = 0 Then B = C(1)
.
Goto Anf
Anf:
Pulseout Portb , A , B
A = A + 1
Goto Kontrolle
Decr1:
Decr C(1)
If C(1) < 3475 Then C(1) = 3475
Return
Incr1:
Incr C(1)
If C(1) > 3750 Then C(1) = 3750
Return
mfG der E-Fan
Hallo Gast-E-Fan,
warum benutzt du nicht die Bascom-eigenen Servoroutinen?
Steht alles in der Hilfe...
Gruß, Michael
Hallo x-ryder,
bei einem vollständig funktionierenden Servo (mit Poti!!) ist die Ausschlagsweite noch typabhängig. Ich lasse z.B. bei einem Graupner-Servo i von 30 bis 110 laufen und wieder rückwärts... Damit überstreiche ich den zulässigen Drehwinkel von 180 Grad.
Viel Erfolg, Harald
Lesezeichen