- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 8 von 8

Thema: Schrittmotor zeitpräzise steuern

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Auch wenn sich keiner weiter gemeldet hat, nach langem Herumprobieren habe ich es doch so halbwegs hinbekommen. Hier mal ein Video davon:



    Am Ende kann man etwas sehen, was mich sehr stört und ich weiß auch nicht, wo das her kommt. Der Motor fährt nicht bis auf die Mindestgeschwindigkeit und kehrt dann um, sondern fährt bis ganz herunter und bekommt dann Probleme, da dann die Frequenz zu klein für den Timer wird. Das Piepen ist der Chopper zur Stromregelung (keine Ahnung, warum man das nur manchmal hört...).
    Ansonsten muss ich noch die Fallunterscheidung einbauen, falls der Beschleunigungsweg größer als der Gesamtweg ist, sollte jetzt aber nicht mehr das Problem darstellen.

    Hier der Code (ist reichlich kompakter geworden, hab sämtliche Floats rausgeschmissen)

    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    $baud = 9600
    
    Config Portc.0 = Output
    Config Portc.1 = Output
    Config Timer1 = Timer , Prescale = 8
    Enable Timer1
    On Timer1 Isr
    Enable Interrupts
    
    Dim A As Word
    Dim V As Word
    Dim V0 As Word
    Dim S As Word
    Dim Sk As Word
    Dim Sa As Word
    Dim Temp As Long
    Dim Dt As Long
    Dim T As Long
    Dim B As Long
    
    S = 10000
    V = 2000
    A = 1500
    V0 = 2
    
    Temp = V - V0
    Temp = Temp * Temp
    Temp = Temp / A
    Sa = Temp / 2
    
    Sk = S - Sa
    Sk = Sk + 1
    Dt = 0
    T = 0
    B = 0
    V0 = 125 * V0
    
    Do
    
      If B = S Then
        B = 0
        Toggle Portc.0
      End If
    
      If B >= Sa And B <= Sk Then
        Dt = 125000 / V
      Else
        Temp = T / 1000
        Temp = A * Temp
        Temp = Temp + V0
        Dt  = 17000000 / Temp
      End If
    
    Loop
    End
    
    Isr:
    Load Timer1 , Dt 
    Toggle Portc.1
    If B < Sa Then
       T = T + Dt 
       Elseif B > Sk Then
       T= T - Dt 
       Else
       T=T
    End If
    Incr B
    Toggle Portc.1
    Return
    Geändert von Geistesblitz (12.07.2011 um 22:17 Uhr)

Ähnliche Themen

  1. schrittmotor steuern
    Von watermelon im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 17.11.2010, 20:23
  2. Schrittmotor über Schrittmotor steuern?
    Von Tarribo im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 06.06.2010, 22:40
  3. Schrittmotor mit LPT steuern
    Von timo1105 im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 11.11.2006, 11:40
  4. Schrittmotor von Hand steuern??
    Von heduobacht im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 31.08.2006, 17:07
  5. Schrittmotor mit PC steuern
    Von SK112 im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 08.01.2005, 08:23

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress