60 lines
1.1 KiB
C++
60 lines
1.1 KiB
C++
#include <AccelStepper.h>
|
|
#include <Stepper.h>
|
|
|
|
//#define NORMAL
|
|
|
|
#define HALFSTEP 8
|
|
#define motorPin1 8 // IN1 on the ULN2003 driver 2
|
|
#define motorPin2 9 // IN2 on the ULN2003 driver 2
|
|
#define motorPin3 10 // IN3 on the ULN2003 driver 2
|
|
#define motorPin4 11 // IN4 on the ULN2003 driver 2
|
|
|
|
#define STEPS_PER_MOTOR_REVOLUTION 64
|
|
#define STEPS_PER_OUTPUT_REVOLUTION STEPS_PER_MOTOR_REVOLUTION * 64
|
|
#define speed 420
|
|
|
|
#ifdef NORMAL
|
|
Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, motorPin1, motorPin3, motorPin2, motorPin4);
|
|
int Steps2Take;
|
|
#else
|
|
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
|
|
int pos=1000;
|
|
#endif
|
|
|
|
void setup() {
|
|
#ifdef NORMAL
|
|
small_stepper.setSpeed(speed);
|
|
#else
|
|
|
|
stepper1.setMaxSpeed(800.0);
|
|
stepper1.setAcceleration(400.0);
|
|
stepper1.move(1);
|
|
stepper1.setSpeed(200);
|
|
|
|
#endif
|
|
}
|
|
|
|
void loop() {
|
|
#ifdef NORMAL
|
|
|
|
Steps2Take = 1000;
|
|
small_stepper.step(Steps2Take);
|
|
|
|
Steps2Take = -1000;
|
|
small_stepper.step(Steps2Take);
|
|
|
|
#else
|
|
|
|
if (stepper1.distanceToGo() == 0)
|
|
{
|
|
delay(100);
|
|
pos = -pos;
|
|
stepper1.moveTo(pos);\
|
|
}
|
|
stepper1.run();
|
|
|
|
#endif
|
|
}
|
|
|
|
|