Also Bammel hatte Recht, da geht auch etwas mehr, aber immer noch keine 180°
Damit wir das Programm zur hand haben, poste ich es mal gleich hier rein.
Mein Servo ist - Servo(1)
Wenn ich die min/max Werte im Kommentar verwende komme ich auf 90°
gehe ich aber drunter oder drüber, dreht sich der Servo weiter.
Da habe ich die werte zwischen 61200-63900 eingestellt und dann lassen sich mehr als 90° einstellen (schätzungsweise ca. 140°)
Und jetzt bin ich irgendwie verzweifelt
Es ist ein AnalogservoMein (vorläufiger) Eindruck ist, dass der Stellbereich von standard Digitalservos i. d. R. kleiner ist als der von entsprechenden analogen.
Code:$regfile "m8def.dat" $baud = 19200 $crystal = 16000000 $framesize = 64 $swstack = 64 $hwstack = 64 Config Timer1 = Timer , Prescale = 8 'timer für Servos Enable Timer1 Timer1 = 62535 Config Portb = Output Portb.0 = 0 'hier hängt servo1 Portb.1 = 0 'hier hängt servo2 Portb.2 = 0 'hier hängt servo3 Portb.3 = 0 'hier hängt servo4 On Timer1 Servoirq 'servo Enable Interrupts Dim Kanal As Byte Dim Servo(4) As Word 'min: 61535, mitte 62535, max 63535 = 2000 schritte Do Servo(1) = 61200 'Mitte Servo(2) = 62535 'Mitte Servo(3) = 62535 'Mitte Servo(4) = 62535 'Mitte Loop Servoirq: If Kanal = 0 Then If Portb.0 = 0 Then 'wenn port low Timer1 = Servo(1) 'dann timer auf entsprechende verzögerung Portb.0 = 1 'und port anschalten Else 'das hier passiert erst bei dem darauf folgenden interrupt Portb.0 = 0 'dann port wieder ausschalten Incr Kanal 'und den nächsten kanal bearbeiten End If End If If Kanal = 1 Then If Portb.1 = 0 Then Timer1 = Servo(2) Portb.1 = 1 Else Portb.1 = 0 Incr Kanal End If End If If Kanal = 2 Then If Portb.2 = 0 Then Timer1 = Servo(3) Portb.2 = 1 Else Portb.2 = 0 Incr Kanal End If End If If Kanal = 3 Then If Portb.3 = 0 Then Timer1 = Servo(4) Portb.3 = 1 Else Portb.3 = 0 Incr Kanal End If End If If Kanal = 4 Then Timer1 = 40000 'eine pause von ca. 12ms bis zum nächsten interrupt. Bei guten Servos oder Brushlessreglern kann man hier bis auf 65530 gehen ==> ansteuerfrequenz von ~ 200Hz Kanal = 0 End If Return End







Zitieren

Lesezeichen