Thankyou for all your help
I have finally found the right code.
This one works:
#include <AccelStepper.h>
#define trigPin 4
#define echoPin 5
#include <Stepper.h>
const int stepsPerRevolution = 400; //number of steps per
                  //revolution for your motor
// initialize the stepper library on the motor shield
Stepper myStepper(stepsPerRevolution, 12,13);Â Â
// give the motor control pins names:
const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;
const int STOP = 0;
const int SPEED = 75;
const int STEPS = 400;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(pwmA, OUTPUT);
pinMode(pwmB, OUTPUT);
pinMode(brakeA, OUTPUT);
pinMode(brakeB, OUTPUT);
digitalWrite(pwmA, HIGH);
digitalWrite(pwmB, HIGH);
digitalWrite(brakeA, LOW);
digitalWrite(brakeB, LOW);
 // initialize the serial port:
Serial.begin(9600);
// set the motor speed (for multiple steps only):
myStepper.setSpeed(SPEED);
}
void loop() {
 accel();
}
long dist()
{
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 return (pulseIn(echoPin, HIGH) / 2) / 29.1;
}
void accel(){
Â
 long distance = dist ();
Â
 delay(500);
Â
 long dist2 = dist () - distance;
Â
 Serial.print (F("distance = "));
 Serial.println (distance);
 Serial.print (F("dist2 = "));
 Serial.println (dist2);
if (distance < 20){
 if (dist2 < 0){
  myStepper.setSpeed(SPEED);
  myStepper.step(-STEPS);
 }
 Â
 else if (dist2 == 0){
  myStepper.setSpeed(STOP);
 }
Â
 else {
  myStepper.setSpeed(SPEED);
  myStepper.step(STEPS);
 }
}
else {
 if (dist2 < 0){
  myStepper.setSpeed(SPEED);
  myStepper.step(STEPS);
  }
 Â
 else if (dist2 == 0){
  myStepper.setSpeed(STOP);
  }Â
 else {
  myStepper.setSpeed(SPEED);
  myStepper.step(-STEPS);
 }
}
}