int Dir=3;
int Stp=2;
int br(9600);
int buttSwtchpin=4;
int numStp=0; //this is count the number of steps completed
int bAngle; //this is number of steps (40*1.8deg for Nema 17)
int CW=1;
int CCW=0;
int buttVal;
float bAngleSteps;
void setup() {
// put your setup code here, to run once:
pinMode(Dir,OUTPUT);
pinMode(Stp,OUTPUT);
pinMode(buttSwtchpin,INPUT);
Serial.begin(br);
}
void loop() {
// put your main code here, to run repeatedly:
//Serial.println(bAngle);
Serial.flush();
bAngle=0;
delay(100);
Serial.println("What is your desired bend angle? ");
while (bAngle==0){
if (Serial.available() !=0){
bAngle = Serial.parseInt();
}
}
bAngleSteps=(180-bAngle)/1.8;
delay(100);
Serial.print("Calculated number of steps to accomplish your bend angle is: ");
Serial.println(bAngleSteps);
buttVal=0;
while (buttVal==0){
buttVal=digitalRead(buttSwtchpin);
delay(100);
}
//Serial.print ("Button Value is: ");
//Serial.println(buttVal);
while (bAngleSteps>numStp){ //steps until the number of steps reaches the bAngle variable
digitalWrite(Dir,CW);
delay(5);
digitalWrite(Stp,HIGH);
delay(5);
digitalWrite(Stp,LOW);
delay(5);
numStp=numStp+1;
Serial.print("Steps is: ");
Serial.println(numStp);
}
buttVal=0;
//Serial.print("buttval has been reset to: ");
//Serial.println(buttVal);
while (buttVal ==0){
buttVal=digitalRead(buttSwtchpin);
delay(100);
}
//Serial.print ("Button Value is: ");
//Serial.println(buttVal);
while (numStp>=1){ //return to start position
digitalWrite(Dir,CCW);
delay(5);
digitalWrite(Stp,HIGH);
delay(5);
digitalWrite(Stp,LOW);
delay(5);
numStp=numStp-1;
Serial.print("Steps is: ");
Serial.println(numStp);
}
//Serial.println(bAngle);
}