const int potPin = A0;
const int rightLED = 5;
const int leftLED = 4;
const int enable = 9;
const int in1 = 8;
const int in2 = 7;
String direction = "";

void setup()
{
  pinMode(rightLED, OUTPUT);
  pinMode(leftLED, OUTPUT);
  pinMode(potPin, INPUT);
  attachInterrupt(0, setDirectionClockWise, RISING);
  attachInterrupt(1, setDirectionCounterClockWise, RISING);
  //Turn off motor
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
}

void loop()
{
  int motorSpeed = analogRead(potPin);
  Serial.println(motorSpeed);
  motorSpeed = map(motorSpeed, 0, 1023, 0, 255);
  Serial.println(motorSpeed);
  
  directionControl();
  delay(100);
  speedControl(motorSpeed);
  delay(100);
}

void setDirectionClockWise(){
  direction = "CW";
}

void setDirectionCounterClockWise(){
  direction = "CCW";
}

void directionControl(){
  if(direction == "CW"){
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    digitalWrite(rightLED, HIGH);
    digitalWrite(leftLED, LOW);  
  }
  
  else if(direction == "CCW"){
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    digitalWrite(rightLED, LOW);
    digitalWrite(leftLED, HIGH);
  }
}

void speedControl(int motorSpeed){
  analogWrite(enable, motorSpeed);
}