#define step_pin3 //Pin 3 connected to Steps pin on EasyDriver
#define dir_pin 2 // Pin 2 connected to Direction pin
#define MS1 5 // Pin 5 connected to MS1 pin
#define MS2 4 // Pin 4 connected to MS2 pin
#define SLEEP 7 // Pin 7 connected to SLEEP pin
#define X_pin A0 // Pin A0 connected to joystick x axis
int direction;
int steps =1025;
void setup() {
pinMode (MS1 , OUTPUT);
pinMode (MS2 , OUTPUT);
pinMode (dir_pin , OUTPUT);
pinMode (step_pin, OUTPUT);
pinMode (SLEEP , OUTPUT);
digitalWrite(SLEEP, HIGH) ; // wake up EasyDriver
delay(5); //wait for EasyDriver wake up
/*Configure type of Steps on EasyDriver;
//MS1 MS2
// LOW LOW = Full Step
// HIGH LOW = Half step
// LOW HIGH = a quarter of step
// HIGH HIGH = an eight of step
*/
digitalWrite (MS1 , LOW);
digitalWrite (MS2 , LOW);
}
void loop(){
while (analogRead(X_pin) >=0 && analogRead(X-pin) <=100) {
if(steps>0){
digitalWrite(dir_pin, HIGH);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps--;
}
}
while (analogRead(X_pin) >=100 && analogRead(X-pin) <=400) {
if(steps<512){
digitalWrite(dir_pin, LOW);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps++;
}
if(steps>512){
digitalWrite(dir_pin, HIGH);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps--;
}
}
while (analogRead(X_pin) >401 && analogRead(X-pin) <=600) {
if(steps<1025){
digitalWrite(dir_pin, LOW);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps++;
}
if(steps>1025){
digitalWrite(dir_pin, HIGH);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps--;
}
}
while (analogRead(X_pin) >601 && analogRead(X-pin) <=900) {
if(steps<1535){
digitalWrite(dir_pin, LOW);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps++;
}
if(steps>1535){
digitalWrite(dir_pin, HIGH);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps--;
}
}
while (analogRead(X_pin) >900 && analogRead(X-pin) <=1024) {
if(steps<2050){
digitalWrite(dir_pin, LOW);
digitalWrite(step_pin, HIGH);
delay(1);
digitalWrite(step_pin, LOW);
delay(1);
steps++;
}
}
}