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); }