-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: PWM erzeugen über VB (LPT)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31

    PWM erzeugen über VB (LPT)

    Anzeige

    Hallo,

    ich bin es mal wieder und liege fast auf den Boden mit dem Bedürfniss, meinen Kopf gegen die Heizung zu hauen.

    Der Servo Motor (ModelCraft Top Line mini servo ES-05 JR ; siehe COnrad für 4,95) will und will nicht rechts herum drehen. Es geht und geht nicht.

    Ich habe schon alle möglichen Programme ausprobiert, welche ein PWM auf D0 (Data0 Pin des LPT, also Pin2) erzeugen.

    Doch der Servo dreht nur nach links.

    Habe ich es überhaupt richtig verstanden ?!


    Signallänge: 20ms
    z.b. Puls von 3 MS

    also:

    ..........|||||||||............................... ....................... und von vorne...
    das währe dann bsp. nach links

    jetzt das PWM für rechts:

    Wieder 20ms Signallänge,
    Puls von 10ms

    ........|||||||||||||||||||||||||||||||||||||||||| |............ und von vorne...


    Oder wie muss ich mir das PWM vorstellen ?

    Habt ihr Programme, die idiotensicher gehen ?
    Bzw habt ihr Lösungen, damit der Motor endlich mal anders herum funktioniert ?

    Mit den µCs und Transistoren stehe ich endgülltig auf Kriegsfuß glaube ich -.-

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Verwendest du VB6 und versuchst auf den LPT zuzugreifen? Das dürfte nicht gehen. Soweit ich weiss, benötigt man dazu die inpout32.dll, die den Zugriff möglich macht.

    Das fehlen des Signals könnte also gleichbedeutend mit 0% Pulsdauer = ganz links sein.
    #ifndef MfG
    #define MfG

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    nene es funktioniert ja.
    Ich nutze VB6 und inpout32.dll

    Ich hab schon n Tool gebastelt, funktioniert auch alles einwandfrei.
    Es geht nur um das korrekte PWM signal.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Achso ok.
    Hm, machst du die Signalerzeugung über nen Timer?
    Also wäre meine Idee, einen Timer im ms-Takt laufen zu lassen, dort jeweils ne Variable zu zählen und in Abhängigkeit des Wertes den Port High/Low setzen.
    #ifndef MfG
    #define MfG

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    Hallo,

    richtig. Ich nutze einen Timer sowie eine eingefügte Funkion,
    Wait.


    Wie würdest Du das ganze machen ?
    Wie muss das Signall aussehen ?

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Naja würds mit dem Timer machen, angenommen so ein Servopuls soll ne Gesamtlänge von 20ms haben.

    Wenn der Timer ne Variable tx hochzählt, dann könnte man das in der Timer-Funktion mit ner Select-Case auswerten:
    Code:
    tx = tx + 1
    
    Select Case tx
    Case 0 to 5:
      Port = High
    Case 6 to 20:
      Port = Low
    End Select
    If tx = 20 THEN tx = 0
    Ist halt da dann das Problem, dass die kleinsten Timerschritte 1ms betragen; da hätte man also max. 20 Positionen.
    #ifndef MfG
    #define MfG

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    heyho.

    Das Servo "pulsiert" jetzt nach links, nach rechts will er aber nicht..

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Versuch mal, die Werte in der Case-Anweisung zu ändern.
    Also mal von 0 bis 15 und 16 bis 20.
    #ifndef MfG
    #define MfG

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    kein unterscheid -.-

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Hm... schreib mal ganz oben (ausserhalb der Timerfunktion) Public tx dazu. Sonst kanns sein, dass der jedes mal ne "frische" tx = 0 verwendet.
    #ifndef MfG
    #define MfG

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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