- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 4 von 4

Thema: Arduino und Stepper

  1. #1

    Arduino und Stepper

    Anzeige

    Praxistest und DIY Projekte
    Hallo, ich beschäftige mich gerade das erste Mal mit Arduino und Stepper.

    Mein Vorhaben:
    Der Stepper soll zu Beginn so lange fahren bis ein Taster gedrückt wird, quasi als Endschalter.
    Um danach eigenständig eine Schleife mit vorgegebenen Schritten fahren.

    Mein Problem:
    ICH!!
    Ich raff es einfach nicht.
    Ich hab den Sketch bereits mehrfach aufgesetzt, komme aber nie auf das gewünschte Ergebnis.
    Langsam aber sicher treibt mich das Ding noch zur Verzweiflung...

    Hier einer der Sketche:

    https://pastebin.com/embed_js/yzA9bSbi

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Um Frustration zu vermeiden und stückweise voranzukommen, kannst du dich an folgende Regeln halten:

    1. In setup() sollten nur Initialisierungen stehen. Das ist kein muss, aber allgemeine Konvention.
    2. Nutze Funktionen, um kleine Teilabschnitte der Logik abzubilden. Die kann man dann sinnvoll benennen und einzeln testen.
    3. In loop() kannst du dann diese Funktion aufrufen und hast dort einen übersichtlichen Code, den man sofort versteht.


    Im folgenden habe ich zu Demonstation deinen Code geändert, und die o.g. Punkte umgesetzt. Wie die Servo-Bibliothek funzt, habe ich mir nicht angeschaut, sondern einfach aus deinem Code kopiert.

    Code:
    #include <Wire.h>
    #include <Adafruit_MotorShield.h>
    #include "utility/Adafruit_MS_PWMServoDriver.h"
     
    auto shield = Adafruit_MotorShield();
    auto motor  = shield.getStepper(200, 1);
     
    enum { ENDSCHALTER = 5 };
    
    
    bool gedrueckt(int pin) {
      return !digitalRead(pin);
    }
    
    void warteBisGedrueckt(int pin) {
      while(!gedrueckt(pin));
    }
    
    void fahreGeradeaus() {
      Serial.println("Start geradeaus!");
      motor->setSpeed(20);  // 3 rpm
      motor->step(10, FORWARD, DOUBLE);
    }
    
    void fahreManoever() {
      Serial.println("Start Manoever!");
      motor->step(80, FORWARD, DOUBLE);
      Serial.println("1");
      delay(2000);
      motor->step(40, BACKWARD, DOUBLE);
      Serial.println("2");
      delay(2000);
      motor->step(60, FORWARD, DOUBLE);
      Serial.println("3");
      delay(2000);
      motor->step(60, FORWARD, DOUBLE);
      Serial.println("4");
      delay(2000);
      motor->step(40, FORWARD, DOUBLE);
      Serial.println("5");
      delay(5000);
    }
    
    void macheNixMehr() {
      Serial.println("Ende! Reset druecken!");
      while(true);
    }
    
    void setup() {
      pinMode(ENDSCHALTER, INPUT);
      shield.begin();
      
      Serial.begin(9600);          
      Serial.println("Setup fertig!");
    }
    
    void loop() {
      if (!gedrueckt(ENDSCHALTER)) {
        fahreGeradeaus();
      }
      warteBisGedrueckt(ENDSCHALTER);
      fahreManoever();
      macheNixMehr();
    }
    LG
    Sisor

  3. #3
    Ich sag mal vielen lieben Dank.
    So ganz ist es noch nicht das wie ich es mir vorstelle.
    Aber ich denke mal das werd ich dann mit ausprobieren hinbekommen.
    Und evtl kapier ich dann auch mal die Befehle...

    Danke nochmal!

  4. #4
    shedepe
    Gast
    Mein Tipp. Lies die Dokumentation zur Servo Library ?

Ähnliche Themen

  1. HILFE - Stepper Motor Ansteuerung mit Arduino - Zieht sehr viel Strom
    Von DollyStepper im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 3
    Letzter Beitrag: 20.09.2015, 13:57
  2. Antworten: 0
    Letzter Beitrag: 29.08.2015, 07:34
  3. stepper an arduino
    Von Blechtrommel im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 18.09.2013, 12:20
  4. Suche Stepper!
    Von Mc_Loyd im Forum Motoren
    Antworten: 6
    Letzter Beitrag: 14.03.2006, 21:31
  5. Stepper-Endstufe "Econo Stepper Motor Driver"
    Von KüSä im Forum Motoren
    Antworten: 0
    Letzter Beitrag: 04.10.2004, 15:49

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress