Du übergibst fest "200"?
Dann kann aber auch nur der Wert verarbeitet werden.

Schon mal Versucht einfach eine Geschwindigkeitsrampe zu erzeugen?
0 bis max. Rückwärts und zurück zu 0 und bis max. Vorwärts und zurück zu 0.

Bsp.:
Code:
int speed;

void loop(){
  for (int speed=0; speed <=255; speed++){
    void Motor_1_Backw(speed);
    delay(10);
  }
  for (int speed=255; speed >=0; speed--){
    void Motor_1_Backw(speed);
    delay(10);
  }
  for (int speed=0; speed <=255; speed++){
    void Motor_1_Forw(speed);
    delay(10);
  }
  for (int speed=255; speed >=0; speed--){
    void Motor_1_Forw(speed);
    delay(10);
  }
}

void Motor1Forw(char velo){
  Motor1_In1 = 0;
    Motor1_Pwm = velo;
}

void Motor1Backw(char velo){
  Motor1_In1 = 1;
  Motor1_Pwm = 255 - velo;
}
Was macht er denn mit diesem Code?

Wenn es zu langsam ist die "delay" rauswerfen.