Go Down

Topic: [Schrittmotor] Schritte mit AccelStepper zählen (Read 928 times) previous topic - next topic

BlueGene

Hallo,

ich plane grad einen Panoramakopf für meine Kamera.

Es müssen zwei Schrittmotoren mit Pololu-Treiber angesteuert werden.

Geplante Funktion:
1. manuelles Anfahren der Startposition per Joystick (funktioniert bereits).
2. Speichern der Startposition bzw. Setzen der Zähler auf 0.
3. manuelles Anfahren der Endposition per Joystick
4. Speichern der Endposition.

Ich finde die Accelstepper-Library sehr schlecht beschrieben bzw. finde mich überhaupt nicht zurecht.

Was mir nun fehlt, ist die Funktion für Schritt 3, also das Zählen der Schritte. Gibt es da schon was fertiges oder wie kann ich das am besten lösen? Ich möchte also mit dem Joystick die Schrittmotoren bewegen und dabei sollen die Schritte gezählt werden, die zurückgelegt wurden.


uwefed

bitte link der Bibliothek und Deinen verwendeten SKetch.
Grüße Uwe

BlueGene

http://www.airspayce.com/mikem/arduino/AccelStepper/

Und hier der Code, mit dem ich momentan die Stepper per Joystick bewege:

Code: [Select]
#include <AccelStepper.h>

AccelStepper Xaxis(1, 5, 4); // pin 2 = step, pin 5 = direction
AccelStepper stepper(1, 9, 8); // pin 2 = step, pin 5 = direction

int schritte = 0;

void setup()

   Xaxis.setMaxSpeed(1000);
   Yaxis.setMaxSpeed(1000);
}

void loop()
{   
  int joyX_value = analogRead(A0);
  int joyY_value = analogRead(A1);
 
  //-------X-Achse--------
  if(joyX_value <100){
  Xaxis.setSpeed(-(1023-joyX_value)*2);
  Xaxis.runSpeed();
  } 
  if(joyX_value <500){
  Xaxis.setSpeed(-(1023-joyX_value)*0.2);
  Xaxis.runSpeed();
  }
  if(joyX_value >520){
  Xaxis.setSpeed(joyX_value*0.2);
  Xaxis.runSpeed();
  }
  if(joyX_value >1000){
  Xaxis.setSpeed(joyX_value*2);
  Xaxis.runSpeed();
  }
 
  //------Y-Achse----------
    if(joyY_value <100){
  Yaxis.setSpeed(-(1023-joyY_value)*2);
  Yaxis.runSpeed();
  } 
  if(joyY_value <500){
  Yaxis.setSpeed(-(1023-joyY_value)*0.2);
  Yaxis.runSpeed();
  }
  if(joyY_value >520){
  Yaxis.setSpeed(joyY_value*0.2);
  Yaxis.runSpeed();
  }
  if(joyY_value >1000){
  Yaxis.setSpeed(joyY_value*2);
  Yaxis.runSpeed();
  }
}

Go Up