int dirA = 11, pwm_pin = 3; void setup(){ pinMode(dirA, OUTPUT); pinMode(pwm_pin, OUTPUT); Serial.begin(9600); } void loop(){ while(Serial.available()){ char c = Serial.read(); int pwm = Serial.parseInt(); if(c == '0'){ digitalWrite(dirA, HIGH); analogWrite(pwm_pin, 255); //provide initial torque to the motor just for 10 milli second when speed is changed delay(15); analogWrite(pwm_pin, pwm); } if(c == '1'){ digitalWrite(dirA, LOW); analogWrite(pwm_pin, 255);//provide initial torque to the motor just for 10 milli second when speed is changed delay(15); analogWrite(pwm_pin, pwm); } } }