-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Schrittmotor mit Rampen ansteuern ?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576

    Schrittmotor mit Rampen ansteuern ?

    Anzeige

    Hallo Leute (ist schon länger her.. )

    Ich möchte quasi ein Ansteuerung für Schrittmotoren mit dem Mega 8 machen.
    Pro Motor brauche ich da Takt und ein Richtungs- Signal.

    Mir geht es jetzt um die Taktausgabe.

    Das Taktsignal müsste jetzt eine start Rampe (frequenzanstieg), normale Frequenz und dann eine fallende Rampe (Frequenzabfall) haben.

    Für die Takterzeugung dachte ich , das ich sie in einer Interruptschleife mache. (damit sie taktmässig immer korrekt ist)

    Aber wie kann ich da die Rampen einbringen ?

    Hat jemand einen Lösungsansatz wie man das in etwa machen könnte ?

    Noch dazu müsste ich min. drei Taktsignale (Drei Motoren) mit unterschiedlichen Frequenz auch noch ausgeben können...
    (= die Rampen liegen zeitlich nicht immer gleich an..)

    Zuerst dachte ich, für die Rampen vielleicht die Aufrufrutiene in der Zeit verändern... (kann man das überhaupt mit einer Variablen?)
    Aber das würde höchstens für einen Motor reichen und ich brauche min. 3

    Andere Idee: ein übergeordnetes Taktsignal mit Interrupt machen und für die Rampen dann ein vielfaches davon verwenden....
    (auch nicht so schön)

    Hat jemand dazu vielleicht einen Lösungsansatz oder Idee?

    Wäre um jeden Tipp dankbar \/

    l.G. Roberto

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Andere Idee: ein übergeordnetes Taktsignal mit Interrupt machen und für die Rampen dann ein vielfaches davon verwenden.... (auch nicht so schön)
    Wieso nicht schön ? Bei jedem Timer passiert genau das Gleiche (Clock/teiler)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo Robert

    Weis nicht so genau...
    * Vielleicht wird die Rampe so zu grob.
    * sollte vielleicht mal eine Sinusrampe werden..
    * Habe noch keine Idee, wie das konkret funktionieren könnte

    l.G.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    ..Sinusrampe werden
    Wenn, dann doch wohl eine Kurve für gleichbleibende/einstellbare Beschleunigung ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hi
    Wenn, dann doch wohl eine Kurve für gleichbleibende/einstellbare Beschleunigung ?
    ..mmmhh.. Kurve.. Wie meinst Du das jetzt
    Meine z.B. ein Rampe die Flach anfängt und dann in der Mitte Steil und oben wieder flach aufhört.. Aber derzeit egal

    Derzeitige Überlegung für die Start Rampe:

    Interrupt mit hoher Frequenz = maximale Schrittfrequenz.

    Für die Startrampe, zwei Variablen im Interrupt.
    Variable z.B A und B

    A= 255
    B = 0


    Interrupt:
    decr A
    if A = 0 then A= 255 -B:
    B= B+5
    If B >254 then B= 255
    end if

    .

    .
    .

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo Roberto,

    ich hätte das Problem hardwaremäßig gelöst, indem ich für die Takterzeugung U/F Wandler nehme. Sie bringen auf eine anloge Eingangsspannung eine proportionale Frequenz am Ausgang. Die Typenbezeichnung habe ich nicht im Kopf, aber wenn Interesse besteht, würde ich sie heraussuchen.

    Gruß
    Detlef

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo Detlef.

    Wie sollte das den dann funktionieren ?

    Ich muss ja sagen können, fahre mir 10000 Schritte nach vorne, 10 zurück u.s.w.
    Mit U/F Wandler könnte ich mir das höchstens mit einem zusätzlichen Encoder vorstellen..

    l.G.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo Roberto,

    das sollte nur ein Denkanstoß für die Erzeugung unterschiedlicher Frequenzen sein. Du hast schon Recht, eine schrittgenaue Ansteuerung ist so kaum möglich. Mit dem Zusatzsignal Vorwärts und Rückwärts könne man schon einen Motor steuern, bräuchte dann aber, wie du schon schreibst, einen zusätzlichen Encoder, um die wirkliche Lage exakt zu bestimmen.

    Gruß
    Detlef

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    hallo,
    der ansatz war schon richtig: du gibst in Bascom einfach den überlauf vor, sodass der timer nach einer bestimmten zeit überläuft und den interrupt auslöst. nach jedem neuen interrupt prüfst du deine aktuelle position und beschleunigst oder verzögerst den ablauf durch änderung des timerwertes, also etwa so:
    interrupt:
    timer1=newValue
    ......
    -> neuen timerwert berechnen und in newValue speichern
    return:
    du brauchst auch keine zusätzlichen timer, weil du ja im interrupt eine vektorinterpolation vornehmen kannst, so mache ich das auch. willst du z.b. eine strecke fahren, die in x-richtung 1000 schritte und in y-richtung nur 500 schritte beträgt, wird der motor für die y-achse nur in jedem zweiten interruptaufruf bewegt. such am besten mal nach bresenham-algorithmus, dieser wird eigentlich für die darstellung von linien auf einem bildschirm verwendet, es ist ja das gleiche problem! dieser bietet den vorteil, dass die vektorinterpolation auf integerbasis berechnet wird und er daher sehr schnell ist.
    übrigens: für die ausgabe weiterer taktsignale hast du ja zwei timer im atmega8 - nur mal so als denkanstoß...
    hoffe, ich konnte dir helfen und hab dich nicht nur verwirrt!

    Ruppi

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo Ruppi (Danke für die Antort)

    Werde mir das mal durchkauen.

    Brauche ich für weitere Taktsignale eigendlich zwingend mehr Timmer oder ginge das alles in einem Interrupt ?

    Weil ich bräuchte dann mehr als 3 Achsen...
    (Soll eigentlich ein Roboterarm werden mit Servomotoren und Harmonicdrive getrieben... )
    l.G. Roberto

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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