Hello,
Im trying to make a stepper control using AccelStepper library. My two stepper motors are nema 23 astrosyn unipolar 9.9kgf 6wires controlled by a tip122 circuit. It works very well, although im having several difficulties on how to code these motors.
Please , keep in mind that im not a coder, Im a hobbist trying to make things move.
I made a sketch based upon arduino examples (calibrate, accelstepper, analogread) and I tried to make it work mixing some lines of each code. Here is what I´ge got (please, keep in mid that Im not a coder.I´ve been studying programming since june).
#include <AccelStepper.h>
//#include <AFMotor.h>
AccelStepper stepper1 (4,2,3,4,5); // Defaults to 4 pins on 2, 3, 4, 5
AccelStepper stepper2(4,9,10,11,12);
// two stepper motors one on each port
//AF_Stepper motor1(200, 1);
//AF_Stepper motor2(200, 2);
int vertpotPin =0;
int horzpotPin=1;
int potValuevert;
int potValuehorz;
float horzspeed;
float vertspeed;
int sensorValue=0;
int sensorMax = 0;Â
int sensorMin = 1023;
int valh;
int valv;
// you can change these to DOUBLE or INTERLEAVE or MICROSTEP!
// wrappers for the first motor!
void forwardstep1() {Â
 stepper1.moveTo(200);
//(stepper1.distanceToGo() == 0);
//stepper1.moveTo(-stepper1.currentPosition());
 stepper1.setSpeed (valv);
Â
 // stepper1.run();
Â
}
void backwardstep1() {Â
 stepper1.moveTo(200);
 //AccelStepper stepper1(BACKWARD, SINGLE);
  if (stepper1.distanceToGo() == 0)
stepper1.moveTo(-stepper1.currentPosition());
  stepper1.setSpeed (valv);
 // stepper1.run();
}
// wrappers for the second motor!
void forwardstep2() {Â
 stepper2.moveTo(200);
 //AccelStepper stepper2(FORWARD, SINGLE);
  stepper2.setSpeed (valh);
  //(stepper2.distanceToGo() == 0);
 // stepper2.run();
}
void backwardstep2() {Â
 stepper2.moveTo(200);
//AccelStepper stepper2(BACKWARD, SINGLE);
Â
 stepper2.moveTo(-stepper1.currentPosition());
// stepper2.run();
}
// Motor shield has two motor ports, now we'll wrap them in an AccelStepper object
//AccelStepper stepper1(forwardstep1, backwardstep1);
//AccelStepper stepper2(forwardstep2, backwardstep2);
void setup()
{Â
  stepper1.runToNewPosition(0);
  stepper1.setMaxSpeed(200.0);
  stepper1.setAcceleration(100.0);
  //stepper1.setSpeed(50);
  stepper2.runToNewPosition(0);
  stepper2.setMaxSpeed(200.0);
  stepper2.setAcceleration(100.0);
  //stepper2.setSpeed(50);
  Â
valv = map(potValuevert, 0, 1023, 0, 200);
valh = map(potValuehorz, 0, 1023, 0, 200);
 // Calibrar por tres segundos
 while (millis() < 1000) {
  sensorValue = analogRead(vertpotPin);
  // record the maximum sensor value
  if (sensorValue > sensorMax) {
   sensorMax = sensorValue;
  }
  // record the minimum sensor value
  if (sensorValue < sensorMin) {
   sensorMin = sensorValue;
  }
 }
}
Â
void loop()
{
 stepper1.run();
 stepper2.run();
Â
Â
 potValuevert=analogRead (vertpotPin);
  if (vertpotPin <sensorMax){
       stepper1.setSpeed (valv);
       backwardstep1();
    Â
       }
  else if (vertpotPin>sensorMax){
       stepper1.setSpeed (valv);
        forwardstep1();
      Â
       }
  potValuehorz=analogRead (horzpotPin);
  if (horzpotPin <sensorMax){
   stepper1.setSpeed (valh);
            backwardstep2();
       }
  else if (horzpotPin>sensorMax){
   stepper1.setSpeed (valh);
            forwardstep2();
       }
Â
 Â
  Â
}
The result is: one stepper makes a complete turn , and nothing happens to the other one.I´d be very glad if I could get some help understanding how to make it turn back and forward controlled by a joystick using accelstepper library.
Thank you for your time.