#define Am 19
#define Ap 18
#define Bp 17
#define Bm 16
#define sig 26
boolean turnedCCW = false ;
boolean turnedCW = false ;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  pinMode(Am, OUTPUT);
  pinMode(Ap, OUTPUT);
  pinMode(Bp, OUTPUT);
  pinMode(Bm, OUTPUT);
  pinMode(sig, INPUT);

}

void loop()
{

  int value = analogRead(sig);
  // Serial.println(value);
  if (value >= 0 && value < 1023 && turnedCCW == false) {
    Serial.println("Left");
    ccw();
    turnedCCW = true ;

    if(turnedCW == true){
    cwB();
    }
    turnedCW = false ;


  } else if (value >= 1023 && value < 3072) {



  } else if (value >= 3072 && value < 4096 && turnedCW == false ) {
    Serial.println("Right");
    cw();
    turnedCW = true ;
    if(turnedCCW == true){
      ccwB();
    }
    turnedCCW = false ;

  }

}

void cw() {
  for (int i = 0 ; i < 5 ; i++ ) {
    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);
    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);

    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);

    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);

  }
  digitalWrite(Am, HIGH);
  digitalWrite(Ap, LOW);
  digitalWrite(Bp, LOW);
  digitalWrite(Bm, HIGH);
  delay(2);
}

void ccw() {
  for (int i = 0 ; i < 4 ; i++ ) {
    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);


    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);

    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);

    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);
  }
  digitalWrite(Am, HIGH);
  digitalWrite(Ap, LOW);
  digitalWrite(Bp, HIGH);
  digitalWrite(Bm, LOW);
  delay(2);
  digitalWrite(Am, LOW);
  digitalWrite(Ap, HIGH);
  digitalWrite(Bp, HIGH);
  digitalWrite(Bm, LOW);
  delay(2);
  digitalWrite(Am, LOW);
  digitalWrite(Ap, HIGH);
  digitalWrite(Bp, LOW);
  digitalWrite(Bm, HIGH);
  delay(2);

}
void cwB() {
  for (int i = 0 ; i < 4 ; i++ ) {
    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);


    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);

    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);

    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);
  }
    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);


    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);

    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);

}
void ccwB() {
  for (int i = 0 ; i < 5 ; i++ ) {
    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);
    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);

    digitalWrite(Am, LOW);
    digitalWrite(Ap, HIGH);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);

    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, HIGH);
    digitalWrite(Bm, LOW);
    delay(2);

  }
    digitalWrite(Am, HIGH);
    digitalWrite(Ap, LOW);
    digitalWrite(Bp, LOW);
    digitalWrite(Bm, HIGH);
    delay(2);

}