- 3D-Druck Einstieg und Tipps         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 28 von 28

Thema: PWM erzeugen über VB (LPT)

  1. #21
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    49
    Beiträge
    377
    Anzeige

    Powerstation Test
    Zitat Zitat von WerWolf2009
    bin bei nem Kollegen und versuchen nun das ganze mit einem atmel 0801 - attiny 2313 20PU zu basteln.
    Hallo WerWolf!

    http://halvar.at/elektronik/servo_mit_bascom_avr/

    mfg
    Gerold
    :-)

  2. #22
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    Zitat Zitat von WerWolf2009
    okay...

    bin bei nem Kollegen und versuchen nun das ganze mit einem
    atmel 0801 - attiny 2313 20PU zu basteln.

    Folgendes:

    Der Attiny bekommt auf PinD.1 und PinD.2 Strom, darauf hin soll er ein langames PWM oder ein schnelles auf den Ausgang &B10000000 schicken.

    leider funktioniert es nicht.
    Weiß jemand wo in folgendem Quelltext der / die fehler liegen ?
    Auf den ersten Blick..

    1. Definierst du deine Variable 'warten' als Byte, versuchst aber ein floating, also..Kommazahl, zu speichern.
    2. Verwendest du waitms, was meines Wissens eine ganze Zahl erwartet..und mit 1 oder 2 ms kommst du wieder nur an die Anschläge...ergo, waitus.
    3. Kann ich mich erinnern dass einige im Forum ein Problem hatten wenn sie waitus mit einer Variable aufrufen, ging bei mir aber wenn ich mich recht entsinne..nur am Rande..

    Cheers, BastelWastel
    Nam et ipsa scientia potestas est..

  3. #23
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    Code:
    $regfile = "2313def.dat"
    $crystal = 8000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Config Portb = Output
    
    Dim Wartenl As Byte
    Dim Wartenr As Byte
    
    
    If Pind.2 = 1 Then
    
    Do
       Portb = &B10000000
       Waitus 15
       Portb = &B00000000
       Waitus 5
          Loop Until Pinb.2 = 0
    
     End If
    Geht nicht... er zuckt nur vor sich hin...

    Links rum geht mit z.b. waitus (1)

    rechts herum nicht -.- z.b. bei waitus (0.4) zuckt er nur...

    ideen ? -.-

  4. #24
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    x.X

    uS = Mikrosekunden
    Gültige Impulswerte für nen Servo wären also zwischen 1000uS und 2000uS

    Pausen mit waitMS 20..

    Wobei der wait Befehl wirklich der schlechteste Weg ist.. Dadurch kannst du den uC für nichts anderes mehr nutzen..
    Nam et ipsa scientia potestas est..

  5. #25
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    moin moin ^^

    ich habe jetzt alles fein säuberlich verkabelt und angeschlossen.
    Komischer weise funkioniert nun auch das PRogramm von Philipp Kolb (.> http://www.philipp-kolb.net/philipp_...o_control.html)

    Der Scannerkopf arbeitet jetzt also.
    Ich kann ihn über den Computer aus nach Links / Rechts und nach Oben/Unten drehen.

    JIHHA !!

    Leider ist das Programm von Philipp K. nicht optimal für mich.
    Ich habe nämlich noch den Shutter und das Farbrad zu betreiben.
    Das Progg von Philipp K. hat leider nur eine Relais Funktion.


    Könnte mir jemand erklären,
    wie er warscheinlich das PWM mit dem Programm erzeugt ?

    Bzw.: könnte für mich jemand einmal mit einem Otzy die Signale auswerten ?
    Ich habe das gefühl, das ich einfach das Prinzip eines PWMs nicht verstanden habe.

    Könntet ihr es mir bitte nocheinmal erklären ? Der Eintrag in der Wissensdatenbank ist für mich unverständlich.

    Was ich bereits gemerkt habe: wenn ich eine LED ans LPT Kabel halte, blinkt sie unterschiedlich schnell ^^

    Danke für eure mithilfe

  6. #26
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    Zitat Zitat von WerWolf2009
    ich habe jetzt alles fein säuberlich verkabelt und angeschlossen.
    Komischer weise funkioniert nun auch das PRogramm von Philipp Kolb (.> http://www.philipp-kolb.net/philipp_...o_control.html)
    Na, das ist doch schon mal was. Dein link endet bei mir in nem 404 error

    Leider ist das Programm von Philipp K. nicht optimal für mich.
    Ich habe nämlich noch den Shutter und das Farbrad zu betreiben.
    Kannst du es nicht erweitern?

    Könnte mir jemand erklären,
    wie er warscheinlich das PWM mit dem Programm erzeugt ?
    Ohne Quellcode nicht
    Aber es wurden dir schon genug moeglichkeiten genannt wie du den Puls erzeugen kannst.
    Deine 'wait' Funktion wuerde ich allerdings nicht verwenden.

    Bzw.: könnte für mich jemand einmal mit einem Otzy die Signale auswerten ?
    Ich habe das gefühl, das ich einfach das Prinzip eines PWMs nicht verstanden habe.

    Könntet ihr es mir bitte nocheinmal erklären ? Der Eintrag in der Wissensdatenbank ist für mich unverständlich.
    Bild hier  
    Bild hier  

    Die Servostellung ist vorgegeben von der laenge des Pulses..dieser ist zwischen 1 und 2 mS lang (bzw 1000 und 2000 uS) und ist gefolgt von einer 20ms langen Pause.
    Ein Puls von 1000 uS waere also eine Endlage, 2000uS Endlage andere Seite und bei 1500 uS sollte der Servo in Mittelstellung gehen.
    Die Dauer der Pause ist eher unkritisch.

    Was ich bereits gemerkt habe: wenn ich eine LED ans LPT Kabel halte, blinkt sie unterschiedlich schnell ^^
    Das ist...toll ._.

    Nam et ipsa scientia potestas est..

  7. #27
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    okay, danke für deine Antwort
    Warscheinlich liegt es an dem zu langsamen Timer
    Ich bräuchte dann wohl einen "High resolution Timer".

    Leider komme ich mit diesem => http://www.gssg.de/net_stpwatch.htm
    Code nicht weiter

    Ich weiß nicht, wie ich den umbauen soll, damit ich einen Timer daraus machen kann.

    Die Frage also: wie erstelle ich am Besten einen Timer, der µS Sekunden Auflösung hat ?
    WIe der im Link: Nanosekunden müssen es nun nicht sein

    Hier übrigens ein neues Video*: http://www.myvideo.de/watch/5186901

    *wird z.Zt. von MyVideo konventiert.

  8. #28
    Benutzer Stammmitglied
    Registriert seit
    27.08.2008
    Beiträge
    31
    moin,

    ich nocheinmal.

    Also, das PWM erzeuge ich jetzt über eine Do-Loop until schleife.

    Merkwürdig finde ich jedoch:
    Das PWM nach links dreht den servo schneller, als nach rechts.

    Jemand eine idee warum ?

    Hier der PWM Quellcode für links:

    Code:
                Aus = 0
                Ausz = 1
    
                Do
                    L1 = 1
                    Out(&H378, L1 + L2 + L3 + L4 + L5 + L6 + L7)
                    Wait(0.5)
                    L1 = 0
                    Out(&H378, L1 + L2 + L3 + L4 + L5 + L6 + L7)
                    Wait(0.9)
    
                Loop Until Aus = 1
    nach rechts:

    Code:
     Aus = 1
                Auslz = 0
                Do
    
                    L1 = 1
                    Out(&H378, L1 + L2 + L3 + L4 + L5 + L6 + L7)
                    Wait(0.6)
                    L1 = 0
                    Out(&H378, L1 + L2 + L3 + L4 + L5 + L6 + L7)
                    Wait(0.51)
    
                Loop Until Ausrz = 1

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

Solar Speicher und Akkus Tests