-         

Ergebnis 1 bis 7 von 7

Thema: 3 Schrittmotoren mit einem s2313 steuern

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    11.01.2004
    Beiträge
    44

    3 Schrittmotoren mit einem s2313 steuern

    Anzeige

    Ich hab ne 287/l298 Schrittmotorsteuerung gebastelt die auch funktioniert. Nu möchte ich 3 Steuerungen mit einem s2313 ansteuern. die Drehrichtung und das enable sind ohne weiters möglich, denk ich. Aber kann ich drei unabhängige Takte erzeugen? Werden z.B. die drei Achsen eines CNC- Frästisches mit dem gleichen Takt (l297/clock) betrieben?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2004
    Beiträge
    263
    Aus dem Artikel zu Schrittmotoren:
    Durch einen kurzen Impuls auf diese Leitung wird der Motor einen Schritt bewegt. In einer Schleife braucht mal also nur diese Leitung kurz ein und auszuschalten (bei der C-Control mit Pulse-Befehl)
    Was willst du denn genau wissen? Um einen Motor zu drehen, setzt du ein I/O Pin kurz von 0 auf 1 und wieder zurück.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    11.01.2004
    Beiträge
    44
    im moment habe ich einen Motor und einen AVR 90S2313. Wenn ich den Motor 100 Schritte laufen lassen will, mache ich ne Schleife die 100 mal durchlaufen wird. Damit sich der Schrittmotor dreht mache ich Pulse mit einer kleinen Pause von 1 bis 15 ms. Dem entsprechend läuft er schneller oder langsamer. Wie mache ich jetzt auf diese Weise 3 verschiedene Takte? Zb läuft Motor 1 mit 7 ms pausen, und der 2. soll schneller laufen z.b 2 ms. Dann stört die erste zeit oder? Muss ich das event. mit Interrupts machen? Oder mach ich einen Denkfehler?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2004
    Beiträge
    263
    Ich habe mich jetzt zwar noch nicht soviel mit dem Thema beschäftigt, aber mach das doch einfach so (für 2 Motoren):

    Code:
    for i = 1 to n
       waitms 5
       Pulse Motor1
       waitms 5
       Pulse Motor1
       Pulse Motor2
    next i
    So müßtest du doch eigentlich für Motor1 alle 5ms einen Pulse und für Motor2 alle 10ms einen Puls bekommen

  5. #5
    Gast
    Kleiner Denkfehler. Motor 1 muss auch 2 x 5 Sek warten, also 10 Sekunden.

  6. #6
    Gast
    Für diesem Fall ist das vielleicht ok (selbe schrittanzahl, und konstante Geschwindigkeit), das ganze soll unter Umständen mit 3 oder 4 Motoren funktionieren und soll natürlich flexibel sein. Also ne Funktion oder Prozedur mit Übergabe der Motor- Nummer, der Schritte und dem Speed. Deshalb dachte ich mir die Takte der Motoren per interrupt zu erzeugen. Vielleicht gibts da schon ne Lösung.

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Du brauchst einen Takt in deiner kleinsten Einheit. Meist reicht eine Millisekunde
    Und für jeden Motor hast du einen eigenen Zähler, nach wieviel mS er schnackeln soll und seine Zähler rücksetzen.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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