Pages: [1]   Go Down
Author Topic: [Schrittmotor] Schritte mit AccelStepper zählen  (Read 816 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21881
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Code:
#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();
  }
}
Logged

Pages: [1]   Go Up
Jump to: