-
        
+ Antworten
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: Servos ansteuern

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614

    Servos ansteuern

    Hi

    Ich habe versucht mit Bascom einen Servo anzusteuern aber irgendwie
    will der nicht so richtig wie ich will.
    Code:
    $regfile = "m8def.dat"
    $crystal = 14745600
    
    Config Servos = 1 , Servo1 = Portc.5 , Reload = 10
    
    Config Portb = Output
    
    Enable Interrupts
    
    Dim I As Word
    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
    Der läuft aber immer nur in eine Richtung.
    Da ich ihn für eine Robotersteuerung verwenden will, brauche ich aber die andere
    Richtung auch noch...

    Vielleicht kann mir jemand helfen.

    Danke im Voraus.

    Martin

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    guckst du hier:
    http://www.elektronik-projekt.de/for...adid_1238.html
    Gruss, Michael

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Hi

    Erstmal Danke aber wie kann ich den Servo denn dauerhaft in die andere Richtung drehen lassen?

    Was sagt das Waitms...?
    Was sagt das Servo(1)=...
    Was soll die for-Schleife?

    Martin

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    deine Fragen klingen so, als ob du überhaupt nichts verstanden hättest.
    Da du Bascom auf dem Rechner hast, ist es sicher ein leichtes für dich, mal auf die Hilfe-Funktion zurückzugreifen. Alle deine Fragen sind dort ausreichend erklärt.
    Das Kopieren des Codes hast du doch auch geschafft?
    Gruss, Michael

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Hi

    Ja das kopieren hab ich geschafft aber mein Problem ist, dass ich da in der Hilfe ziemlich wenig verstehe und da ist ja auch nicht erklärt was z.B. das Waitms soll...

    Wenn du das so gut kannst (Rang) dann schreib doch mal nen bitte neuen Code mit Kommentaren.

    Das Prog soll einfach nur 1 sek nach links dann 1 sek nach rechts...
    (Der Servo wurde modifiziert)

    Martin

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    da ist ja auch nicht erklärt was z.B. das Waitms soll...
    wie bitte??
    Das hab ich eben direkt aus der Hilfe kopiert:
    Code:
    WAITMS 10		'wait for 10 mS
    was gibt es daran nicht zu verstehen?
    Alle deine anderen Befehle sind ebenso in der Hilfe zu finden, oder hast du gar nicht gesucht?
    Wenn du das so gut kannst (Rang) dann schreib doch mal nen bitte neuen Code mit Kommentaren.
    Hmmm, meinst du mit Rang die Anzahl der Beiträge? Darauf solltes du in einem Forum nicht auf das Können schliessen.
    Zurück zu deiner Frage: Hast du eigentlich meinen ersten Link gelesen?
    Gruss, Michael

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Mann Mann

    Du solltest auch nicht denken das ich blöd bin...

    Natürlich weiss ich was Waitms ist. Ich will hier aber wissen was dieses Waitms bewirkt.
    Ob der Servo während dieser 10 ms in die andere Richtung steuert oder WANN er dies tut damit ich das Programm von deinem Link so modifizieren kann das ich es gebrauchen kann.

    Martin

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    du bist hartnäckig, das gefällt mir
    Hättest du die Hilfe zum Thema Servo gelesen, wüsstest du, dass der Servo-Impuls mit Hilfe einer Interrupt-Routine erzeugt wird. Dazu wird Timer0 benutzt. Der angegebene Reload-Wert multipliziert mit dem Wert, den du Servo(x) mitgibst, ist die Impulszeit in µS (Mikrosekunden).
    Servo(x) sollte also zwischen 100 und 200 liegen.
    um das Servo zu bewegen, muss nur dieser Wert geändert werden, klar?
    Du änderst also den Wert, wartest ein bisschen, änderst ihn wieder, wartest, usw, usw. Wartest du nicht, wirst du keine Änderung bemerken, weil alles viel zu schnell geht. Wartest du zu lange (wie in der Hilfe)wirst du keine Änderung bemerken, weil alles viel zu langsam geht.
    Verstanden?
    Gruss, Michael

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    gut ich glaub das hab ich jetzt versanden...
    jo servo(1)=... iss die wartezeit die der servo haben soll.
    d.h.: wenn servo(1)=100 und reload=10 dann wartet der servo 100 µs und läuft dann wieder 10 µs und wie bekommt amn nun die andere drehrichtung.

    p.s.: ich will den servo als antrieb benutzen, dazu brauche ich die andere richtung.

    du bist überigens auch hartnäckig...

    Martin

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    d.h.: wenn servo(1)=100 und reload=10 dann wartet der servo 100 µs und läuft dann wieder 10 µs
    nein, servowert _mal_ Reloadwert = Impulszeit. Die muss dann zwischen 1000 (Servo läuft linksrum) und 2000 (rechtsrum) liegen. Du beeinflusst _nur_ die Impulszeit, die Pausenzeit (ca.20mS) wird von Bascom automatisch generiert.
    Zusammenfassend sollten Werte für servo(x) zwischen 100 und 200 liegen.
    Gruss, Michael

+ Antworten
Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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