- LiFePO4 Speicher Test         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Frage zu CustomStepper

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242

    Frage zu CustomStepper

    Anzeige

    E-Bike
    Hallo,

    mit der Funktion CustomStepper, die hier beschrieben ist:
    http://playground.arduino.cc/Main/CustomStepper

    bekomme ich mit diesem Programm:

    Code:
    #include <CustomStepper.h>
    
    CustomStepper stepper(8, 9, 10, 11);
    boolean rotate1 = false;
    boolean isDone = false;
    int Umdrehungen = 3;
    
    void setup()
    {
    
      stepper.setRPM(12);  //   Drehzahl
    
      stepper.setSPR(4096);    //   Schritte pro Umdrehung, hier für den 28BYJ-48
    }
    
    void loop()
    {
      if (stepper.isDone() &&  rotate1 == false)
      {
    
        stepper.setDirection(CW);   //   Drehrichtung  (CW, CCW, and STOP)
        stepper.rotate(Umdrehungen);   //  dreht 3 Umdrehungen
        rotate1 = true;
      }
    
      stepper.run();   //  *****dieser Befehl muss sein*****
    
    }

    meinen Schrittmotor prima zum Laufen. Das ist abgeleitet aus der library CustomStepper.zip. Ich bin der Meinung, dass das IF in dem vollständigen Programm nur dazu dient, um die Varianten, einen Stepper zu betreiben, auszuwählen.

    Wenn ich es aber mit dieser noch weiter vereinfachten Version versuche,

    Code:
    #include <CustomStepper.h>
    
    
    CustomStepper stepper(8, 9, 10, 11,(byte[]){8, B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001},4096,12,CW);  // Anschlüsse festlegen
    
    void setup() {
      // put your setup code here, to run once:
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    
    stepper.rotate(3);
    
    
     stepper.run();
    }
    dann ist die Schrittfolge so hoch (am Oszilloskop zu sehen), dass der Motor nicht mitkommt und ich kann sie auch nicht verändern!

    Wie kann das sein?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi,

    ab hier habe ich mich mit der CustomStepperlib und dem chinastepper (den ich immer noch in meinem fahrgestell verwende) beschäftigt und auch viel hilfe bekommen. Vielleicht hilfts dir auch...

    wäre intressant die ergebnisse deiner überlegungen zu sehen...
    gruß inka

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.208
    Denk ich mir.
    Die loop() ist nämlich ne Schleife und da in dem Programm nicht viel zu tun ist, soll dein Stepper also alle paar Mikrosekunden drei Umdrehungen machen.
    Das wird der wohl nich schaffen können....
    Das if() fängt sowas auf, nur wenn die vorherige Aufgabe erledigt ist, gibts ne neue.
    Bei deiner Sparvariante erstickt der Motor kurzerhand in Arbeit...
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Hallo,

    danke für die Antworten.

    Dass die LOOP eine Schleife ist mir natürlich klar.

    Was mir aber nicht klar ist:

    was macht der CustomStepper bei einem Schleifendurchlauf eigentlich? Erzeugt er jedesmal einen Schritt oder arbeitet er unabhängig von der Schleife das ab was man ihm zuletzt vorgegeben hat und signalisiert er das dem Schleifenprogramm, dass er das erledigt hat, über die Variable stepper.isDone(). Aber wie kann man den CustomStepper dann jederzeit unterbrechen?
    Die Parametererklärungen kenne ich natürlich. Die helfen aber beim Ablaufverständnis nicht wirklich..

    Noch 2 Fragen:

    Was passiert in meiner Schleife, während CustomStepper das Programm für den Motor abarbeitet?

    Wie so bleibt der Motor dauerhaft stehen, wenn ich vor oder hinter dem " stepper.run()" eine delay(10) einfüge? Bei einem delay(1) läuft er aber weiter!
    vG
    fredyxx
    Geändert von fredyxx (11.04.2016 um 14:31 Uhr)

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi,

    der CustomStepper sendet nur den befehl "drehe dich 3x" an den stepper, und das bei jedem schleifendurchlauf. Wenn man ihm nicht die zeit dazu gibt sich dreimal zu drehen ( und dazu isDone abfragt) dreht er sich halt nicht...

    ich glaube nicht einmal, dass man ihn jederzeit unterbrechen kann, deshalb habe ich kleinere stepps gewählt, nicht 3 umdrehungen, sonder vielleich 30°...

    es ist ungünstig zusätzlich fragen nachträglich in den post einzubauen, die werden leicht übersehen. Die akzeptanz von delays hängt auch von deren größe ab - 1ms geht noch, 10ms sind schon evtl. zu viel. Timing halt
    Geändert von inka (11.04.2016 um 14:42 Uhr)
    gruß inka

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Hallo,

    da ich noch nicht lange mit Arduino umgehe, stelle ich evtl. noch merkwürdige Fragen. Z.B. diese:

    wenn ich nun in mein Motorsteuerungsprogramm z.B. eine blinkende LED einbauen will, dann tauchen da ja ein oder zwei delays auf. Wie geht das dann, ohne dass der Motor stehen bleibt?

    vG

    fredyxx

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.208
    Delay() braucht man generell niemals, die sind zu 70% nur Gepfusche.
    Grundsätzlich kann man sie _immer_ vermeiden, und gewöhnlich sollte man das auch tun.

    Ausserdem: unterschätz die Motorcontroller nicht- viele halten den letzten Wert nämlich, bis sie ein neues Kommando empfangen.
    Zudem kann auch ein Arduino unter der Haube so einiges, was man normal gar nicht merkt- beispielsweise können mittels eingebauten Timern durchaus mehrere Prozesse "scheinbar" nebeneinander laufen. Das spielt sich in Mikrosekunden ab, daher merkt man das nicht.
    Nur: Schrittmotoren müssen _völlig_ anders angesteuert werden.
    Du wirst also nicht drumherum kommen, dir die Dokumentation zu der Bibliothek mal gründlich anzusehen.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Zitat Zitat von Rabenauge Beitrag anzeigen
    Du wirst also nicht drumherum kommen, dir die Dokumentation zu der Bibliothek mal gründlich anzusehen.
    Würde ich ja evtl. auch machen, wenn ich wüsste, wo die zu finden ist.

    vG

    fredyxx

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.208
    Dort, wo es auch die Bibliothek gegeben hat?
    http://playground.arduino.cc/Main/CustomStepper
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Zitat Zitat von Rabenauge Beitrag anzeigen
    Dort, wo es auch die Bibliothek gegeben hat?
    http://playground.arduino.cc/Main/CustomStepper
    Die Seite kenne ich. Sie beschreibt aber nur die Parameter und nicht die Funktionsweise im Zusammenhang mit einem eigenen , übergeordneten Programm

    vG

    fredyxx

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. .:Anfänger Frage zu Sensoren:.(Neu! Frage zu meinem 1. Progr
    Von oceans94 im Forum Sensoren / Sensorik
    Antworten: 22
    Letzter Beitrag: 06.05.2008, 07:54

Berechtigungen

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

Labornetzteil AliExpress