-         

Ergebnis 1 bis 8 von 8

Thema: Servo die 50zigste - NIX HILFT!

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.12.2005
    Beiträge
    161

    Servo die 50zigste - NIX HILFT!

    Anzeige

    Hallo zusammen,

    eins vorweg ich habe wirklich überall im Forum und in den bekannten Hilfedateien gesucht.

    Habe ein großes Problem mit der Servoansteuerung.

    Ich habe folgenden Code:

    Code:
    $regfile = "m16def.dat"
     $crystal = 8000000
    
    
    Dim Center As Integer
    dim servopos as integer
    dim left as integer
    dim right as integer
    left=100
    right=200
    center=150
    Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.0 , Reload = 10
    Config Portb = Output
    Enable Interrupts
    
       Servopos = Center
      Servo(1) = Servopos
       Wait 1
    
      Servopos = left   'nach links fahren
      Servo(1) = Servopos
      Wait 1
    
         print   "Rechtsdrehung"
         For Servopos = left To right Step 10
       Servo(1) = Servopos
       Waitms 10
       Next
       Wait 1
    
        print  "Linksdrehung"
        For Servopos = right  To left Step -10
       Servo(1) = Servopos
       Waitms 10
       Next
        Wait 1
    
          print "Mitte"
        Servopos = Center
       Servo(1) = Servopos
    Ich benutze ein STK500 und das Servo macht das "übliche", es ruckelt in eine Richtung bis Endanschlag.

    Nichts hat geholfen, weder das Timing noch die Veränderung des Reload.

    Benutze Robbe FS500 Servos.

    Kann mir jemand sagen wo ich noch suchen könnte?

    Ich schreibe den Code in Bascom, brenne aber über AVR-Studio4 nur den HEX-File über STK500. Die Frequenz im STK500 ist auch 8 Mhz. Ports und Pins sind richtig. Servos i.O.

    Danke und Gruß
    Markus

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.11.2003
    Beiträge
    813
    Hallo
    Hast du dir vielleicht mal die Pulse an einem Oszilloskop angeschaut ?
    Das erklaert so manches Problem.
    Wenn du kein eigenes Oszilloskop hast nimm einen andere AVR der kann auch recht gut Pulse messen.

    MFG

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.10.2005
    Ort
    Mönchengladbach
    Alter
    47
    Beiträge
    114
    Wie hast Du den Servo denn angeschlossen?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    dim servopos as integer

    Mach mal "Bytes" draus
    Gruß
    Ratber

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    "left" und "right" sind irgendwie vom Bascom belegt. nimm andere namen, weiß der Teufel, wie er reagiert

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    Da hat PickNick völlig Recht, alles, was Bascom im Editor mit einer anderen Farbe versieht, sollte man als Variablennamen lieber vermeiden...

    Wenn´s das auch nicht bringen sollte, ersetze doch erstmal Dein "Servo(1)=Servopos" gegen ein "Print Servopos", um die Zählschleifen zu testen.

    Wenn Dein Servo schon gemütlich in eine Richtung loszuckelt, kann´s die Hardware und die Grundkonfiguration ja kaum sein, also wird´s vermutlich an der Zähler-Logik liegen!

    Viele Grüße

    Torsten

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Was mir auffällt:
    For Servopos = 100 To 200 Step 10
    Servo(1) = Servopos
    Waitms 10
    Next
    Das sind doch zehn Schritte. d.h. du fährst in einer 1/100 sekunde von links nach rechts. Is das nicht ein wenig flott ?
    Das Servo nimmt einen neuen Wert erst nach 20 mS zu Kenntnis ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.12.2005
    Beiträge
    161

    Vielen Dank für Eure Hilfe

    Ich habe die Fehlerquelle gefunden.

    1. Das Servo war richtig angeschlossen - Bin Modellbauer daher weis ich bei Robbe ist weiß=Impuls

    2. Die Änderungen der Variablennamen haben nichts bewirkt.

    3. Das Servo soll sich recht "flott" bewegen - jetzt tut es das auch.

    Ich habe vergessen das ich den STK500 Takt hergenommen habe. Aber das Fusebit im Controller auf "intern" hatte. Das kann natürlich nicht funktionieren.

    Fusbit auf "extern" und schon klapp´s Sorry aber da bin ich echt erst um 02:00 per Zufall draufgekommen. Danke aber allen die mir geantwortet haben - das sind trotzdem wieder gute Tips.

    Merci
    Markus

Berechtigungen

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