-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Modellbauservo -> Reload-Wert

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556

    Modellbauservo -> Reload-Wert

    Anzeige

    Kann mir vielleicht Jemand erklären, warum bei "config servos" der Reload-Wert den gesamten Verfahrbereich eines Servos verschiebt ?
    Ich dachte immer, der dafür benutzte Timer 0 ist lediglich dafür da, wie oft die Impulswerte upgedatet und zum Servo geschickt werden.
    Bei dessen Änderung verschiebt sich aber wie gesagt bei mir der Winkelbereich des Servo (5er-Conrad).

    Durch herumexperimentieren kann ich zwar den max. Drehbereich von etwa 200° ansprechen aber halt nur teilweise nutzen.
    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Ich dachte immer, der dafür benutzte Timer 0 ist lediglich dafür da, wie oft die Impulswerte upgedatet und zum Servo geschickt werden.
    Den Beispielcode in der Bascom Hilfe würde ich eigentlich eher so interpretieren, dass die Impulsdauer und somit die Stellung des Servos als vielfaches des Reload-Intervalls angegeben wird.

    "10µS Resolution" hört sich für mich eindeutig danach an.

    Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10
    'we use 2 Servos with 10 uS resolution

    'finally we must turn on the global interrupt
    Enable Interrupts

    'the servo() array is created automatic. You can used it to set the
    'time the servo must be on
    Servo(1) = 100 '1000 uS on
    Servo(2) = 200 ' 2000 uS on
    Ich habe keine Ahnung wie MCS das in der Servo-Library gelöst hat. Wenn ich eine Servo-Routine schreiben würde, würde ich auch einen Timerintervall definieren und dann sowohl Periodendauer als auch Impulsdauer als Vielfaches dieses Timerintervalls definieren.
    Ich wüsste nicht, wie man das mit einem einzelnen Timer anders lösen könnte und 2 Timer zu benutzen wäre nicht besonders elegant.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Teste doch mal, ob Relaod = 10 und Servo(1)=150 die gleiche Position hat wie: Reload = 15 und Servo 1 = 100.

    MFG Moritz

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556
    Ich habe mal ein Bild gemacht, wie sich das Servo bei den Unterschiedlichen Werten verhält :

    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, es liegt an den billigservo von canrad. bei hochwertigen Servos hast du eine genaue festlegung der stellung, ich benutze für genaue positionen nicht den billig-conrad-servo.
    mfg pebisoft

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Hm... das ist natürlich nciht ganz optimal!
    200/R5 und 100/R10 sollten eignetlich den gleichen Wert haben, da sie ja beide 1000uS on sind.
    Was auch ein wenig stört, ist, dass scheinbar nicht 1 ms zwischen den beiden End-anschlägen liegt, sondern mehr, wie man gut an Rot erkenne kann. Vielleicht liegt es daran, dass es eben billiege Conrad-Servos sind. Wäre super, wenn man auch mal das Ausgangssignel mit einem Oszi messen könnte, dann könnte mamn genau sagen,w as was erzeugt und ob es am Controller oder Servo liegt.

    MFG Moritz

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    hallo, es liegt an den billigservo von canrad. bei hochwertigen Servos hast du eine genaue festlegung der stellung, ich benutze für genaue positionen nicht den billig-conrad-servo.
    Das liegt ganz sicher nicht an den Billig Servos von Conrad, denn dann würde der Servo ja auch wenn man ihn konstant mit derselben Impuls-Länge ansteuert hin- und herflattern.

    200/R5 und 100/R10 sollten eignetlich den gleichen Wert haben, da sie ja beide 1000uS on sind.
    Wenn bei beiden Einstellungen wirklich derselbe Impuls am Servo ankäme, müsste der Servo eigentlich auch bei konstanter Ansteuerung mit einem von den Werten zwischen beiden Stellungen hin- und her driften.

    Ich könnte mir vorstellen, dass der Controller bei 5µS nicht mehr richtig mitkommt. Bei z.B. einem 4 MHz Quarz hat der Controller zwischen den Intervallen gerade mal 20 Takte Zeit die Routinen dazwischen auszuführen. Bei den Interruots gibt es glaube ich auch noch einen "NOSAVE" Parameter, wenn der nicht aktiviert ist, werden schon reichlich Takte für das Speichern von Registerwerten verbraucht.

    Vielleicht ist es aber auch ein Fehler in Bascom.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Ich könnte mir vorstellen, dass der Controller bei 5µS nicht mehr richtig mitkommt.
    Das würde auch erklären, warum 200/R5 rechts von 100/R10 liegt.

    Vielecht könnte man mal eine 2. Versuchsreihe machen, in denen der Servo immer 1000 us kriegt also z.B.

    500/R2
    200/R5
    143/R7
    125/R8
    100/R10
    67/R15
    50/R20
    40/R25

    Besonders die ersten 5 sollten aufschluss über rcycles vermutung geben.

    MFG Moritz

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556
    ..hmm, der benutzte Atmega32 läuft mit 16MHz, sollte also eigentlich keine Probleme machen.

    Ich denke, ohne Messung mit einem Oszi wird das alles nix und regt doch eher zu Hypothesen an. Werde mir die Tage mal eines leihen...


    ...dennoch hier der "Test" :

    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    01.11.2004
    Beiträge
    14
    Hallo zusammen!
    Ich hätte da noch ne Anfänger-Frage: Anscheinend wird die Position durch Servo(x) = und Reload = festgelegt. Was hat es denn mit
    Do
    For I = 0 To 100 <-- mit diesen Zahlen auf sich?? was bewirken die??
    Servo(1) = I
    Waitms 1000
    Next

    Danke im Voraus!!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •