-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 36

Thema: Servo:Stellung-Richtung-Geschwindigkeit?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547

    Servo:Stellung-Richtung-Geschwindigkeit?

    Anzeige

    Hi, Leute.
    Meien Servos sind heute gekommen und jetzt möchte ich sie mit einer Rn control ansteuern.
    Ich hab mir auch schonmal die BascomHilfe angeschaut. Da steht folgendes Programm . Ich werd daraus aber nicht schlau:[code]Servo's need a pulse in order to operate
    'with the config statement CONFIG Servos we can specify how many servo's we
    'will use and which port pins are used
    'A maximum of 16 Servos might be used
    'The SERVO statements use one byte for an interrupt counter and the TIMER0
    'This means that you can not use TIMER0 anymore
    'The reload value specifies the interval of the timer in uS
    Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10
    'we use 2 Servos with 10 uS resolution

    'we must configure the port pins used to act as output
    Config Portb = Output

    '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


    Dim I As Byte
    Do
    For I = 0 To 100
    Servo(1) = I
    Waitms 1000
    Next

    For I = 200 To 0 Step -1
    Servo(1) = I
    Waitms 1000
    Next
    Loop
    End
    Code:
    KAnn mir einer erklären womit jezt genau Richtung ,Stellung etc. programmiert werden?
    
    Danke

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    Servus sulu,
    das mit den Servos ist eigentlich recht simpel.
    wenn du die wie in dem beispiel in der Hilfe configuriert hast sollte folgender test code eigentlich gehen.
    Bei mir war servo(1)= 100 ca die Mittelstellung
    und Servo(1)=50 ca linkes Maximum
    und Servo(1)=150 ca rechtes Maximum.
    das hängt aber immer vom Servo ab und musst du einfach ausprobieren.

    Du kannst natürlich auch alle werte dazwischen nehmen, das sind dann eben die Stellungen dazwischen. ist echt recht simpel.
    Wenn du ihn jetzt langsamer von links nach rechts bewegen willst musst du das über zwischenschritte machen. also 50-pause-60-pause-70-pause-80-pause-90-pause-100... etc.

    Hier mal ein kleines testprogramm (sub):
    Code:
    dim servopos as integer
    dim left as integer
    dim right as integer
    left=50
    right=150
    center=100
    
    print "Servo Test"
      Wait 1
    
      print  = "Mitte"
       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

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547
    hi, funktioniert irgendwie nicht. Das Programm hat keinen Fehler.
    Ich hab nen Conrad servo.Also Kabel rot schwarz und gelb. Wie muss ich die anschließen?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    also
    gelb auf den signal ausgang. (bei dir b0 und b1)
    rot auf +5V
    schwarz auf masse
    dann sollte es laufen.
    ich hab das ganze auch für nen 5€ servo von conrad gemacht...

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547
    Mit dem Programm hab ich das jetzt laufen lassen:
    geht aber nicht . Hab schon eine Stunden lang versucht das zunm laufen zu bringen:

    Code:
    Dim Center As Integer
    dim servopos as integer
    dim left as integer
    dim right as integer
    left=50
    right=150
    center=100
    
    Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.0 , Reload = 10
    'we use 2 Servos with 10 uS resolution
    
    'we must configure the port pins used to act as output
    Config Portb = Output
    
    'finally we must turn on the global interrupt
    Enable Interrupts
    
    
    
    print "Servo Test"
      Wait 1
    
    
       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

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    also wenn du das RNControl 1.4 hast und testweise einen servo an pina0 hinhängst, dann muss folgender code eigentlich gehen:

    Code:
    $regfile = "m32def.dat"
       $crystal = 16000000
      $baud = 9600
    
    Dim Center As Integer
    dim servopos as integer
    dim left as integer
    dim right as integer
    left=50
    right=150
    center=100 
    servopos=center
    
    
    'servo config
    Config Servos = 1 , Servo1 = Porta.0 , Reload = 10
    Config Pina.0 = Output
    enable interrupts
    'ende servo config
    
    do
    print "Servo Test"
      Wait 1
    
    
       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
    loop

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    oder noch simpler:

    Code:
    $regfile = "m32def.dat"
       $crystal = 16000000
      $baud = 9600
    
    'servo config
    Config Servos = 1 , Servo1 = Porta.0 , Reload = 10
    Config Pina.0 = Output
    enable interrupts
    'ende servo config
    
    do
    servo(1)=50
    wait 1
    servo(1)=100
    wait 1
    servo(1)=150
    wait 1
    
    loop

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547
    Funktioniert auch damit nicht. Ich habe keine Ahnung warum nicht. Es scheint fast so als wäre da was am Board abgeraucht

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547
    Wie kann ich denn prüfen ob das Board noch in Ordnung ist?
    Ich vermute da ist iergendein Widerstand zu heiß geworden ,oder so

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    also wenns nur ein widerstand ist dann hast du ja glück gehabt.
    du könntest evtl mal das testprogramm aufspielen was ursprünglich drauf ist und schauen ob das läuft.
    va ob die leds an port c blinken.
    dann weißt du zumindest das port c io ist.
    so leicht kann des aber nicht abrauchen... was hast du denn noch damit gemacht?
    einfach nen servo anzuschließen glaub ich dann nicht...
    aber was du noch mal checken kannst sind die servos.
    ich hab da auch schon kaputte vom conrad erwischt.
    dann mal aufgemacht und die schaun innen aus als hätten das 3 jährige kinder zu übungszwecken gelötet -> aussen hui innen pfui...
    wirklich fies.
    vielleicht liegts daran

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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